- HikariCP數據庫連接池實戰
- 朱政科
- 1321字
- 2019-09-02 17:55:03
1.3 技術驅動業務,結果未導向
以上僅僅是高并發時對于TCP的調優,但是抗堆積一定是消息網關的一個很核心的特性,如亞馬遜AMAZON SES和SENDCLOUD等都是抗堆積的。
郵件的擁堵會造成一連串的問題,如多個阿里事業部之間郵件緊耦合、每到大促線上互相影響、業務發展嚴重受限、詢盤導致系統雪崩、實時性高的會員注冊郵件被整體通道堵死、投遞量越大投遞成功率越低、投遞量用戶反饋郵件延遲越多等問題。我清晰地記得,當年不僅故障報告有記載,很多人都記得并說起過因為郵件導致的P0級故障,直接造成了資金損失。
對于流量洪峰,我們可以吸取古人的智慧。早在4000多年前,我國的黃河流域洪水為患,鯀采取“水來土擋”的策略治水,最終失敗。大禹確立了一條與他父親鯀的“堵”相反的方針,叫作“疏”,即“治水須順水性,水性就下,導之入海。高處就鑿通,低處就疏導”的治水思想。
在國際化業務場景如“雙十一”時,在美國的服務器遠遠不如杭州服務器系統設計能力的情況下,我們可以采用多種手段進行“疏導”。
“疏”:可以采用拆分事業部賬號、營銷和通知賬號以讓每個發件賬號走獨立的賬號、消息設置優先級(最高優先級不落盤,直接向網關通過綠色通道發送,避免延遲,如提高注冊郵件的實時性)、支持整體和局部的流控暫停及停發消息等手段。
“導”:為了防止對于阿里云盤古的沖擊,Rowan自身做好抗堆積建設;支持灰度引流,解決阿里云美國系統設計能力弱而杭州系統設計能力強的問題;大促郵件發送參與業務方評估,合理調度紛發;做好充分的預案等。由于中美有13小時的時差,“雙十一大促”也可以制定合理的規劃,通過“打時間差”的形式處理好中美“雙十一大促”的消息投遞問題。
郵件領域還有一個經典的黑名單的問題,全球最大的反垃圾郵件組織spamhaus會將發往mail.ru, microsoft(hotmail、outlook、live)等地址的郵件設為接收方拒收。如果營銷郵件無法保證接收地址的有效性等原因,很容易被spamhaus封禁,spamhaus也往往不同意解封,一般只能通過郵件和spamhaus溝通。大促預熱期對于EDM營銷GMV影響很大,尤其是外國人有著看郵件的習慣。正是因為郵件黑名單的問題,我在2016年曾經匯總過一部分數據,發現營銷郵件的到達率從95%以上降到了70%左右,EDM相關GMV就跟著下降了30%以上。
針對黑名單問題,優先尋求商務解封。除了商務解封之外,產品設計上需要建設郵件的黑白名單體系,對存量和增量用戶進行確認,發送郵件列表的黑白名單,先從Hotmail等會被屏蔽的用戶開始,目前在發送郵件的列表中進行過濾;注冊新會員如果是在郵件列表中的用戶,進行郵箱驗證,只驗證是否可以發郵件,不影響下單等流程。另外,阿里云需要實現更換機房IP的策略,通過IP更換跳過spamhaus的監測,比如大促前保留備用營銷網段隨時準備動態切換。質量較低的任務也可以先暫停,當然這些任務暫停并不會影響我們向優質客戶(如下過單的用戶)發送的EDM郵件,所以對業務上的影響是可控的。具體的業務指標可以在這些低質量任務暫停后觀察一下網站的流量指標,基本不會有什么明顯影響。
在完成了上述事情以后,2016年“雙十一大促”不光技術上提升到萬級QPS,業務上也取得了可喜的結果:1.6億存量用戶驗證在大促前落地;“雙十一”當天2億營銷郵件投遞到用戶郵箱;大促前3億營銷郵件投放成功;大促期間和2016年上半年比較,在整體的發送量提升的同時,打開率和行動率有10%~15%的提升。
- 復雜軟件設計之道:領域驅動設計全面解析與實戰
- 深入淺出Android Jetpack
- Mastering Kali Linux for Web Penetration Testing
- Essential C++(中文版)
- C# Multithreaded and Parallel Programming
- Java并發編程:核心方法與框架
- Akka入門與實踐
- 用Python動手學統計學
- Getting Started with JUCE
- 體驗之道:從需求到實踐的用戶體驗實戰
- 一覽眾山小:ASP.NET Web開發修行實錄
- 零基礎學Java(第5版)
- Zend Framework 2 Cookbook
- Raspberry Pi Robotic Projects
- 生成藝術:Processing視覺創意入門