今天已到10月下旬一年一度電商雙11大促即將開始,是電子商務公司一年最大促銷活動,是重中之重。對於線上服務來說,是一次流量大考,對研發來說是一次技術提升機會。做好應對高並發、大流量准備,是件必須要做必須做成的事情。
個性化推薦系統又與其他系統有着相似大流量考驗,還有一些和其他業務系統差異地方。核心交易系統更多面臨高並發交易可用性,高並發交易不出錯,系統穩定性。個性化推薦面臨問題是及其復雜線上算法邏輯,多次緩存redis調用,各個業務線面臨線上將近20倍流量暴漲,因為個性化每個用戶邏輯均不相同,暴漲的流量對於redis等存儲壓力也是巨大類似DDoS。挑戰是相當之大,最近上下游聯合壓測、全鏈路壓測系統均未達到預估流量,壓力山大。
流量大、系統多、問題復雜,整個事情怎么做,還是要梳理思路,按節奏進行備戰,開展各項工作。首先是梳理線上服務依賴存儲、依賴上游接口、線上服務邏輯是否可優化,然后單機壓測、上下游壓測、全鏈路壓測,線上服務擴容,線上各種redis、數據庫、ES等資源擴容。詳細備戰可見我的618備戰文章618電商大促備戰以及總結。
這次雙11出現新情況以及面臨主要問題是第一次壓測多個redis集群性能嚴重下降並持續整個壓測過程,后來進行查找分析定位是網絡異常導致,因為redis目前也是在虛擬機中,兩個物理機網絡出問題,物理機上的多個redis集群出現性能持續下降。
第二次上下游壓測依然是redis性能下降,redis單個集群性能持續下降,導致整個集群性能降,線上業務基本都依賴這個集群,全線業務性能受影響。經查是存在大key或熱key導致單個分片性能差。以及線上業務流量過於集中,全部集中單個redis集群,每分鍾流量過億。
解決辦法最好是redis數據復制進行拆分,一部分業務讀原有redis集群,一部分讀新集群,這是個方法但資源消耗大。二是在定位查找熱key將熱key進行定時處理或分散處理,大key value值大小進行控制,避免集群節點壓力過大,導致集群性能下降。三是線上業務自查看是否有redis通用數據是定時拉取,實時拉取通用數據導致熱點key,通用數據一定采用定時器拉取。空用戶信息訪問直接返回通用數據,避免空信息時出現熱點key。
redis資源不可擴容情況下,線上服務可以進行一下優化,主要是redis集群連接配置調大、單個客戶端連接調小,避免消耗盡redis連接。集群超時調小,避免redis性能差導致線上服務不可用。
該做工作認真做好,盡量做到線上業務大流量不降級。但外一出現風險的情況怎么辦?這時降級預案要做好,做好降級准備,降級預案提前演練做到萬無一失。
微信搜索:debugme123
掃碼關注: