降級
對于一個高可用服務,很重要的一個設計就是降級開關,在設計降級開關時,主要有以下思路:
1.開關集中化管理:通過推送機制把開關推送到各個應用,
2.可降級的多級服務:比如服務呼叫降級為只讀本地快取,只讀分布式快取,只讀默認降級資料(如庫存狀態默認有貨)
3.開關前置化:如架構是nginx --> tomcat,可以將開關前置到nginx接入層,在nginx層做開關,請求流量不回源后端tomcat應用或者只是一小部分流量回源,
4.業務降級:當高并發流量來襲,在電商系統大促設計時保障用戶能下單,能支付是核心要求,并保障資料最終一致性即可,這樣就可以把一些同步呼叫改為異步呼叫,優先處理高優先級資料或特殊特征的資料,合理分配進入系統的流量,以保證系統可用,
限流
限流的目的是防止惡意請求流量、惡意攻擊,或者防止流量超出系統峰值,可以考慮以下思路:
1.惡意請求流量只訪問到cache,
2.對于穿透到后端應用的流量可以考慮使用nginx的limit模塊處理,
3.對于惡意IP可以使用nginx deny進行屏蔽,
這些操作的原則是限制流量穿透到后端薄弱的應用層,
可回滾
版本化的目的是實作可審計可追溯,并且可回滾,當程式或者資料出錯時,如果有版本化機制,那么就可以通過回滾恢復到最近一個正確的版本,比如事務回滾、代碼庫回滾、部署版本回滾、資料版本回滾、靜態資源版本回滾等,通過回滾機制可保證系統某些場景下實作高可用,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/44248.html
標籤:架構設計
上一篇:SpringCloud-服務注冊與實作-Eureka創建服務提供者(附原始碼下載)
下一篇:springboot windows10風格 activiti 整合專案框架原始碼 shiro 安全框架 druid
