close

在一些事務性網站的架構設計中,經常涉及到高併發性和高可用性的原則。以下小系列將簡要介紹高可用性原則。高可用性原則一般分為以下四點:降級、限流、流量削减和回滾。

1退化

對於高可用性服務,一個非常重要的設計是降級開關。在設計降級開關時,主要基於以下思想。

1.1交換機集中管理:通過推送機制將交換機推送到每個應用。

1.2可降級的多級服務:例如,服務調用降級為只讀本地緩存、只讀分佈式緩存和只讀默認降級數據

1.3交換機前置:如果架構為nginx和tomcat,則交換機可以前置到nginx接入層,交換機可以在nginx層進行。請求的流量不會返回到源,後端Tomcat應用程序或只有一小部分流量返回到源。

1.4業務降級:當高併發流量來襲時,在電子商務系統的大促銷設計中,確保用戶可以下單和付款,並確保數據的最終一致性是覈心要求。

2限流

流量限制的目的是防止惡意請求流量、惡意攻擊或防止流量超過系統峰值。可以考慮以下想法:

2.1惡意請求流量僅訪問緩存

2.2 nginx的限制模塊可用於處理穿透後端應用的流量

2.3對於惡意IP,可以使用nginx deny進行遮罩

其原理是將流量滲透限制在後端薄弱的應用層。

三。斷流

對於大型應用,流量削减非常重要。例如,在多機房環境中,如果機房掛起、機架掛起或服務器掛起,則需要進行流量切斷。您可以使用以下方法進行切換。

3.1dns:切換機房入口。

3.2 HTTP DNS:在主應用程序場景中,流量門戶在用戶端分配,繞過運營商的本地DNS,實現更準確的流量調度

3.3lvs/haproxy:切換失敗的nginx訪問層。

3.4nginx:用於故障切換的應用層。

此外,為了便於交換,一些應用程序還可以在nginx接入層進行交換。一些流量切換可以通過nginx而不是LVS/haproxy完成。

4回降

版本控制的目的是實現稽核跟踪和回滾。當程式或數據發生故障時,如果有版本控制機制,可以通過回滾將其恢復到最新的正確版本,如事務回滾、代碼庫回滾、部署版本回滾、數據版本回滾、靜態資源版本回滾、,回滾機制可以保證系統在特定場景下的高可用性。

arrow
arrow
    全站熱搜

    hendrikleehk 發表在 痞客邦 留言(0) 人氣()