Java 多線程 高可用原則

來源:互聯網
上載者:User

標籤:cat   運營   src   資料   info   java 多線程   需要   核心   family   

  高可用原則

  1 降級

  降級開關的設計思路如下:

  1. 集中管理開關:把開關推送到各個應用。

  

  2. 可降級的多級讀服務:比如服務調用降級為唯讀本機快取、唯讀分布式緩衝、唯讀預設降級資料(如庫存狀態預設有貨)。

  

  3. 前置開關:例如,架構是Nginx->Tomcat,可以將開關前置到Nginx接入層,在Nginx層做開關,請求流量回源後端應用或者只是一小部分流量回源。

  4. 業務降級:當高並發流量來襲,設計電商系統大促時保證使用者能下單和能支付是核心要求,並保證資料最終一致性即可。可以把一些同步調用改成非同步呼叫,優先處理高優先順序資料或特殊特徵的資料,合理分配進入系統的流量,以保證系統可用。

  2 限流

  限流的目的是防止惡意請求流量、惡意攻擊以及流量超出系統峰值。實現思路如下:

  1. 惡意請求流量只訪問到cache。

  2. 對於穿透到後端應用的流量,可以考慮使用Nginx的limit模組處理。

  3. 對於惡意IP,可以使用nginx deny進行屏蔽。

  原則上限制流量穿透到後端薄弱的應用程式層。

  3 切流量

  如果某台伺服器掛了,需要切流量,切換方式如下:

  1. DNS:切換機房入口。

  2. HttpDNS:主要在APP情境下,用戶端分配好流量入口後繞過電訊廠商LocalDNS並實現更精準流量調度。

  3. LVS/HaProxy:切換故障的Nginx接入層。

  4. Nginx:切換故障的應用程式層。

  4 可復原

  版本化的目的是實現可審計可追溯,並且可復原。當程式或資料出錯時,如果有版本化機制,那麼可以通過復原恢複到最近一個正確的版本,比如交易回復和程式碼程式庫復原。

 

  通過負載平衡和反向 Proxy實現分流,通過限流保護服務免受雪崩之災,通過降級實現部分可用和有損服務,通過隔離實現故障隔離,通過設定合理的逾時與重試機制來避免請求堆積造成雪崩,通過復原機制快速修複錯誤版本。上述原則可以實現系統高可用。

 

  參考資料

  《億級流量網站架構核心技術》 P10-12

Java 多線程 高可用原則

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.