加個星標,第一時間獲取推送的文章哦
一、計算高可用架構
1、主備模式 分冷備和溫備
2、主從模式 需要按業務設計任務分配器
3、高可用集羣模式
可以完成故障自動切換
1)負載均衡集羣
任務分配器實現分配策略的選擇和服務器的探活
2)非對稱集羣
任務分配器需要考慮服務器的角色
例如zk的每個節點都包含任務分配器,follow節點收到寫請求轉發給leader,讀自己處理。
leader節點故障後zk停止服務選取新的leader
二、業務高可用架構
(1)接口級故障處理方案
核心思想:優先保證核心業務和優先保證絕大部分用戶
1、服務端降級
按照業務的優先級,停掉部分或者全部功能呢
方式:
1)系統後門降級
難以批量操作
2)獨立降級系統
2、客戶端熔斷
設計要點:統一採樣、閾值調優
3、服務端限流
1)基於請求限流(外部)
限制總量、限制時間量
2)基於資源限流(內部)
常見的內部資源有:連接數、文件句柄、線程數、請求隊列
4、服務端排隊策略
具體設計:
排隊模塊:基於rocketmq消息隊列,每個商品保存一個隊列,隊列大小稍微大於商品數量,保證先進先出
服務模塊:處理業務邏輯,異步返回處理結果
調度模塊:根據服務模塊的處理能力,動態調節服務模塊向排隊模塊拉取請求的速度
(2)異地多活解決方案
1、同城異區
應對機房級別故障的最優架構,兩個機房搭建告訴網絡連接,
架構設計上可以將兩個機房當做本地機房來設計,無須額外考慮
2、跨城異地
應對極端災難性事件,架構設計上需解決數據不一致對業務的影響。
新聞類,微博類業務可以採用跨城異地多活
設計技巧:
1)保證核心業務的異地多活
2)保證核心數據最終一致性
3)採用多種手段同步數據
4)只保證絕大部分用戶的異地多活
設計步驟:
1)業務分級
2)數據分類
3)數據同步
4)異常處理
3、跨國異地
應用場景決定了對架構設計要求不高
應用場景:
1)爲不同地區用戶提供服務 ,跨地區賬號無法通用
2)只讀類業務做多活,例如谷歌搜索引擎
限時分享面試&學習福利資源
好資料第一時間分享,中華石杉老師的分佈式面試突擊視頻教程,最清晰整體的微服務全面解讀的PDF,體系化的Java路線資料整理的Github,億級電商架構的視頻實戰課程,你值得擁有
獲取方式: 關注公衆號喬志勇筆記, 後臺回覆"學習資料" !!!