微服務18:微服務治理之異地多活容災

Brand發表於2023-10-08

★微服務系列

微服務1:微服務及其演進史
微服務2:微服務全景架構
微服務3:微服務拆分策略
微服務4:服務註冊與發現
微服務5:服務註冊與發現(實踐篇)
微服務6:通訊之閘道器
微服務7:通訊之RPC
微服務8:通訊之RPC實踐篇(附原始碼)
微服務9:服務治理來保證高可用
微服務10:系統服務熔斷、限流
微服務11:熔斷、降級的Hystrix實現(附原始碼)
微服務12:流量策略
微服務13:雲基礎場景下流量策略實現原理
微服務14:微服務治理之重試
微服務15:微服務治理之超時
微服務16:微服務治理之熔斷、限流
微服務17:微服務治理之異常驅逐

1 介紹

網際網路行業內在進行微服務高可用建設的時候,不可避免的要考慮一個事情,如何部署才能提高系統的可用性和穩定性。
所以一般情況下,不會只部署一個機房,這樣無法完全避免一個機房內網路故障、機房斷電,遭受區域網路攻擊的風險。
所以有了多機房建設的,但是多機房建設同樣也有問題,他們無法近距離的部署,如果部署區域太近(如在同一個城市),依然無法避免區域斷電、洪災、水災、火災、地震等災難情況的發生。
所以業內的大型網際網路企業,會耗費大量的人力物理在基礎設施建設方面。透過資源的冗餘來保證服務的可持續性,這種其實就是資源博弈的過程。

2 高可用架構模型

2.1 兩地安中心

兩地三中心是一種容災解決方案,指的是一個生產中心、一個同城災難備份中心、一個異地災難備份中心。生產中心的資料同步地複製到同城災難備份中心,同時,生產中心的資料非同步地複製到異地災難備份中心。同城災備中心通常具備與生產中心等同業務處理能力,應用可在不丟失資料的情況下切換到同城災備中心執行,保持業務連續執行。在生產中心和同城容災中心同時不可用時,可在異地的容災中心實現業務的恢復,保持業務連續性。
大量案例證明透過這種方案系統能夠較快地進行響應和止損,儘可能保全業務資料不丟失,實現更優的RPO和RTO。所以,“兩地三中心”容災解決方案得到了廣泛的應用。
具體來說,“兩地三中心”具備以下優點:

  1. 提高系統可用性:兩個地理位置的資料中心可以同時承擔服務,當一個資料中心發生故障時,另一個資料中心可以繼續提供服務,保證系統的可用性。
  2. 資料備份與恢復:在“兩地三中心”架構中,同城雙中心可以相互備份資料,並實時同步資料,減少資料丟失的風險。同時,當一個資料中心發生故障時,異地災備中心可以用備份資料進行業務的恢復。
  3. 災備保障:對於一些對資料安全和業務連續性有嚴格要求的應用,透過“兩地三中心”架構可以大大提高災備保障能力。即使在遭遇自然災害等不可控因素時,異地災備中心也可以接管業務,保證業務的連續執行。
  4. 負載均衡與效能最佳化:透過將資料和業務分佈在兩個或三個中心,可以平衡負載,提高系統的效能和響應速度。
    因此,“兩地三中心”的架構對於那些需要高可用性、資料備份和恢復、災備保障以及效能最佳化的系統來說是非常有必要的。在實際應用中,“兩地三中心”的架構可以根據實際需求進行靈活調整和擴充套件。

image

2.2 異地多活

異地多活是一種系統高可用的解決方案,它透過在多個不同機房建立多個資料中心,並且使這多個資料中心都可以同時線上提供服務來避免當出現機房斷電、光纖被挖斷等場景出現服務不可用的場景,實現服務高可用,同時這多個資料中心之間需要進行資料相互同步來保證資料的最終一致性。

在考慮哪些業務需要異地多活的時候,需要結合業務的重要程度,以及業務是否存在全域性邏輯,以及異地多活場景中解決全域性邏輯的成本來考慮是否需要做異地多活,同時需要考慮業務是否需要保證資料強一致性。例如,對於登入業務,這是使用者中心最重要的業務場景,如果使用者登入不了,特別是重度使用者,則是非常嚴重的事故,所以登入需要做異地多活。同時,每個資料中心都有使用者的賬號和密碼資訊,故可以做到異地多活。

異地多活是指在不同城市建立獨立的資料中心,以實現資料的多個備份和業務的高可用性。以下是實現異地多活的詳細解決方案:

  1. 建立多個資料中心:在不同的地理位置建立多個資料中心,每個資料中心具備相同的業務功能,可以獨立承擔業務執行。
  2. 資料備份與同步:在多個資料中心之間進行資料備份和同步,保證資料的多個副本存在。當某個資料中心發生故障時,其他資料中心可以提供服務,同時將資料同步到其他資料中心。
  3. CDN+負載均衡:CDN即內容分發網路,其目的是在現有的Internet上增加一層新的網路架構,將網站的內容釋出到最接近使用者的伺服器,使使用者可以就近取得所需的內容,提高使用者訪問網站的響應速度。負載均衡技術,負責將使用者請求分發到不同的資料中心,以實現業務的負載均衡和高可用性。
  4. 資料複製:透過資料複製技術,將資料從一個資料中心複製到另一個資料中心,以實現資料的多個副本存在,提高資料的安全性和可靠性。
  5. 資料容災:在資料中心發生故障時,透過資料容災技術,將資料備份到其他資料中心,以實現資料的可用性和完整性。
  6. 應用容災:透過應用容災技術,將應用程式從一個資料中心遷移到另一個資料中心,以實現應用程式的高可用性和故障恢復能力。
  7. 監控和管理:透過監控和管理工具,實時監控資料中心的執行狀態和應用程式的執行情況,以便及時發現和解決問題,提高系統的可用性和可靠性。

以上是實現異地多活的詳細解決方案,需要根據具體的業務需求和應用場景進行具體的規劃和設計。

image

3 業內主流場景

淺談異地多活及阿里雲容災經驗分享
美團大眾點評賬號業務高可用進階之路

相關文章