概念
高可用
定義
問題背景 Redis集羣、Elasticsearch集羣、MySQL集羣宕機
解決方案一微服務架構
[1]資源隔離、熔斷
[2]備用降級
參數設置-Hystrix
響應時間
高峯QPS
主機數量
線程池大小 線程數量
線程數量 線程數量 = 每秒處理請求數量(req-d) = 每秒請求數量(req / s) * 每個請求處理時長((req-d * s) / req)
超時時間 超時時間 = 每個請求所需處理時間(s / req-d) = 1 / 線程數量 = 處理時間 / 請求數量
案例
問題1 服務A,每秒鐘接受30個請求,同時向服務B發起30個請求,然後每個請求的響應約200ms,則Hystrix線程池需要多少線程?
解 30 ( 每秒請求數量 個/s ) * 0.2 ( 每個請求的處理秒數 s/個) + 4 ( 緩存Buffer ) = 10 ( 線程數量 )
問題2 爲何增加線程?
答 系統高峯期,系統性能下降,預留Buffer空間
服務降級
解決方案
[1]查詢服務 查詢本地緩存
[2]寫入服務 寫入操作記錄日誌,MQ;隨後恢復
[3]Redis宕機 查詢MySQL
[4]MySQL宕機 記錄操作日誌到ES;隨後恢復