係統穩定性保障核武器——全鏈路壓測
不確定性帶來的係統可用性問題
線上單機與單係統壓測
單係統壓測的問題
- 壓測環境,它是指具備數據與流量隔離能力的生產環境,不能影響到原有的用戶體驗和用戶流程、BI報表以及推薦算法等;
- 壓測基礎數據,它主要包括壓測用戶、店鋪、商品等基礎數據;
- 壓測場景模型,它主要是指壓測哪些業務場景,每個場景下壓測多大量等;
- 壓測流量,它主要由壓測請求的協議來決定壓測流量的輸出;
壓測環境
壓測基礎數據&壓測場景模型
壓測流量平台整體結構
壓測流量平台挑戰
壓測流量平台技術選型
壓測流量平台——壓測引擎
- 協議支持,主要支持的PC端協議包括Http、Https、websocket,無線端協議是Spdy、http2、accs、acds、mqtt。由於真正在雙11時,用戶使用的瀏覽器各異,進而導致與服務端協商的加密算法不一致,為了盡量模擬準確性,需要支持SSL 2.0\3.0、TLS1.0\1.1\1.2不同算法套件靈活配比,貼近用戶端行為。
- 請求發送,由於全鏈路壓測是利用現有的CDN集群,為了不影響現有CDN業務的正常運轉,需要做Cgroup資源隔離(主要包括CPU和網絡),為了實現性能最優,通常采用異步Reactor模型發送請求,鏈路間線程池隔離。
- 集群協作,控製中心Master充當大腦來發送指令,所有節點根據收到的指令執行下一步操作,並且所有slave壓測節點會實時將自身狀態同步到Master,以便於其做決策,如果slave節點狀態不好,master則將其剔除。如果壓測引擎與控製中心失聯,則壓測引擎會自殺,避免流量浪費。
雙11全鏈路壓測現場
全鏈路壓測平台
最後更新:2017-08-13 22:26:07