天天看點

高可用之資料設計

一個應用系統的高可用設計在很大程度上依賴資料的高可用,中間層的服務一般是無狀态的,很容易通過彈性伸縮等機制實作高可用。但資料是有狀态的,擴充起來相對要複雜得多,涉及資料線上遷移、資料實時同步等技術難題。

1.資料分布式

資料庫的高可用一般分為主備資料庫和分布式資料庫。

主備資料庫(或者多副本資料庫)的目标是實作資料的可用及安全,在主資料庫出現軟硬體故障時能夠及時切換到備資料庫以確定業務的正常運作,同時確定資料不丢失。金融級的資料庫一般采用3個以上副本的資料庫。在運作過程中,主備庫實時進行資料同步,根據資料的安全等級不同,又分為強一緻同步和異步同步。

分布式資料庫中間件實作分庫分表、平滑擴容、讀寫分離等技術,以此達到底層實體庫的橫向擴充,解決應用規模越來越大時資料庫的吞吐量和容量的瓶頸。單機資料庫即使能力再強,也存在性能的天花闆,而分布式資料庫通過添加實體資源的方式,讓資料庫的性能得以準線性的增長。

2.異構資料

企業建設IT系統的目标就是加工處理資料,以便讓資料更好地為業務服務。資料的表現形式有很多,有結構化資料庫、非結構檔案、消息資料、緩存資料、音視訊流式資料等不同的資料種類。

一個完整的業務場景,往往不隻包含單一的資料源,而需要在不同的異構資料源之間進行資料的內建、加工處理和流轉,應根據不同場景綜合考慮技術儲備和實作成本,選擇最合适的資料庫技術。

高可用之資料設計
3.資料容災
  • A-S模式:即主備模式。隻有主中心提供正常的資料服務,備中心僅作資料冷備,當災難發生時,主中心才會切換到備中心。這種架構最簡單,但備中心的資源閑置問題較為突出。
  • A-Q模式:即讀寫分離模式。對于資料實時性要求不高的讀場景,分發到備中心的資料提供隻讀服務,以此來分擔主中心資料庫的壓力。
  • A-A’模式:即非對稱運作模式。主備中心提供業務讀寫服務,但是兩者承接的業務是不同的,為避免資料交叉覆寫沖突,主備兩邊的業務資料必須能夠完全分隔。備中心隻承接部分非核心業務,主備之間資料雙向同步。
  • A-A 模式:即對稱運作模式。主備中心提供完全相同的業務讀寫服務,通過前端的流量入口來辨別區分具體某一次請求該路由到哪一個資料中心,如根據使用者的屬地區分南北兩個中心,不同使用者之間資料不存在交叉覆寫的問題,主備之間資料雙向同步。
  • C-U模式:即單元化部署模式(Centre-Unit)。一般是多個中心的超大規模應用,大型電商應用系統就采用單元化部署,分為中心節點和單元節點,根據使用者的注冊地點流量分發路由到就近的單元節點,單元節點内完成絕大部分的業務閉環,少數中心化服務(如庫存相關服務)必須請求中心節點。所有的單元節點與中心節點保持資料單向同步,一旦某個單元節點出現故障,其流量将由中心節點承接,待單元節點恢複且資料回流完成後,流量再由中心節點切換回單元節點。中心節點内部也采用同城主備模式,以確定中心節點自身的高可用。