對於乙個高可用服務,很重要的乙個設計就是降級開關。在設計降級開關時,主要有以下思路:
1.開關集中化管理:通過推送機制把開關推送到各個應用。
2.可降級的多級服務:比如服務呼叫降級為唯讀本地快取,唯讀分布式快取,唯讀預設降級資料(如庫存狀態預設有貨)
3.開關前置化:如架構是nginx --> tomcat,可以將開關前置到nginx接入層,在nginx層做開關,請求流量不回源後端tomcat應用或者只是一小部分流量回源。
4.業務降級:當高併發流量來襲,在電商系統大促設計時保障使用者能下單,能支付是核心要求,並保障資料最終一致性即可。這樣就可以把一些同步呼叫改為非同步呼叫,優先處理高優先順序資料或特殊特徵的資料,合理分配進入系統的流量,以保證系統可用。
限流的目的是防止惡意請求流量、惡意攻擊,或者防止流量超出系統峰值。可以考慮以下思路:
1.惡意請求流量只訪問到cache。
2.對於穿透到後端應用的流量可以考慮使用nginx的limit模組處理。
3.對於惡意ip可以使用nginx deny進行遮蔽。
這些操作的原則是限制流量穿透到後端薄弱的應用層。
版本化的目的是實現可審計可追溯,並且可回滾。當程式或者資料出錯時,如果有版本化機制,那麼就可以通過回滾恢復到最近乙個正確的版本,比如事務回滾、**庫回滾、部署版本回滾、資料版本回滾、靜態資源版本回滾等。通過回滾機制可保證系統某些場景下實現高可用。
系統架構 物流系統高可用架構
系統可用率 多級快取 動態分組切換 db物理隔離 服務分組隔離 跨機房隔離 漏斗模型 db限流 系統一般可以分為前端應用系統和後端資料庫系統,前端應用系統實施分布式集群部署技術上是比較成熟的,後端資料庫系統實現異地多活技術難度很大,目前也只有阿里,京東這樣的公司才真正實現。因此,對於大多數應用,前端...
高效能,高可用系統架構
本文是學習大型分布式 架構的技術總結。對架構乙個高效能,高可用,可伸縮,可擴充套件的分布式 進行了概要性描述,並給出乙個架構參考。一部分為讀書筆記,一部分是個人經驗總結。對大型分布式 架構有很好的參考價值。1 大型 的特點 2 大型 架構目標 3 大型 架構模式 4 高效能架構 以使用者為中心,提供...
保證系統的高可用
1 客戶端層 到 反向 層 的高可用,是通過反向 層的冗餘實現的,常見實踐是keepalived virtual ip自動故障轉移 2 反向 層 到 站點層 的高可用,是通過站點層的冗餘實現的,常見實踐是nginx與web server之間的存活性探測與自動故障轉移 3 站點層 到 服務層 的高可用...