在一些交易網站的架構設計中,經常涉及到高併發性和高可用性。以下部分將簡要總結高可用性原則。高可用性原則一般分為以下四點:降級、限流、斷流和回滾。
1退化
交換機的高可用性設計是非常重要的。在設計降級開關時,主要依據如下。
1.1交換機集中管理:通過推送機制將交換機推送到各個應用。
1.2降級多級服務:例如,服務調用降級為只讀本地緩存、只讀分佈式緩存、只讀默認降級數據
1.3交換機前置:如果架構為nginx和tomcat,可以將交換機前置到nginx接入層,交換機在nginx層進行。請求流量不會返回到後端Tomcat應用程序的源,或者只有一小部分流量返回到源。
1.4業務降級:當高併發流量攻擊時,保證用戶能够下單和付款是電子商務系統大促銷設計的覈心要求,並保證數據的最終一致性。
2限流
流量限制的目的是防止惡意請求流量、惡意攻擊或流量超過系統峰值。可以考慮以下想法:
2.1惡意請求流量只訪問緩存
2.2對於穿透後端應用的流量,可以使用nginx的limit模塊進行處理
2.3對於惡意IP,可以使用nginx deny進行遮罩
其原理是將流量滲透限制在後端的弱應用層。
三。切流
對於大型應用來說,减少流量是非常重要的。例如,在多機房環境中,一個機房掛了,機架掛了,服務器掛了。以下方法可用於切換。
3.1dns:切換機房入口。
3.2 httpdns:在主應用場景中,用戶端分配流量入口,繞過運營商的本地DNS,實現更精確的流量調度
3.3 LVS/haproxy:切換故障nginx接入層。
3.4nginx:切換失敗的應用層。
另外,為了方便切換,有些應用還可以在nginx接入層進行切換。一些流量可以通過nginx交換,但不能通過LVS/haproxy。
4它可以回滾
版本控制的目的是實現稽核跟踪和回滾。當出現程式或數據錯誤時,如果有版本控制機制,可以通過回滾恢復到最新的正確版本,如事務回滾、程式碼基回滾、部署版本回滾、數據版本回滾、靜態資源版本回滾,回退機制可以保證系統在一定場景下的高可用性。