一、背景
- 涉及面廣:
- 端: … 等等
- 渠道: 到店綜合、到店餐飲
- 形式: 頁面 + 接口
- 流量特點:
- 存在波峯波谷
- 週一至週五高
- 關鍵問題:
-
- 保障鏈路穩定
- 關鍵鏈路故障: mq, cache, es, 第三方支付渠道, 供應商系統
-
- 數據一致性
- 鏈路長、異步交互、一致性保障
-
- 系統容量評估
- 瓶頸在哪: 連接池耗盡; 線程池耗盡; 隊列阻塞
- 服務能力安全線: YoungGC、FullGC 頻繁; 某個依賴變慢引發雪崩
二、解決方案
1. 鏈路穩定
- 依賴治理: 強依賴可降級; 弱依賴可熔斷; 限流
- 超時治理: 配置化
- 解耦/隔離:
- 讀寫隔離、異構存儲
- 冷熱隔離:範圍查詢、離線導出、查es、實時查詢、查mysql業務試圖
- 主流程同步調用,輔流程異步調用
- 容災預案:
- 災備通道: 返現、投/退保、用戶通知、業務監控
- 降級級別:級別1:業務無損;級別2:核心業務可用;級別3:核心業務有損
2. 數據一致性保障
- 冪等重試 + 異步補償(延遲隊列):
上游可重試,可發出多個相同消息,下游收到消息後的操作必須是冪等。涉及第三方供應商時,供應商系統慢,爲了提高系統吞吐量出此下冊 - 上游異步通知 + 下游主動輪詢:
上游發異步消息,由於消息可能丟失,下游對超時的等待進行輪詢 - SAGAS模式:大事務拆成小事務 + 失敗時逆向補償
長事務拆分成小事務,小事務可逆向回滾 - 離線檢測 + 離線補償
新項目:正確性檢測平臺
3. 系統容量評估
- 多機房雙倍冗餘基礎上:壓測