【CDP-雲設計模式】第7章,2.讀副本模式(Read Replica Pattern)

1.要解決的問題

  在數據庫訪問頻率變高而導致數據庫服務器不堪重負時,通常會對服務器規格進行升級(也就是服務器的縱向擴展)。當縱向擴展很難時,你可以採用橫向擴張來水平分佈數據庫服務器;然而,這種方法一向非常困難。對數據庫服務器來說,一般讀數據的比例是多於寫數據的,所以總體來說應該主要提升系統的讀性能。

2.雲模式的說明

  提升讀性能有很多種方法。你可以使用這種模式,通過將讀取任務分配給多個“讀複本”(即,用於讀取的副本)從而提升整體性能。讀副本遵循主服務器的記錄,反映數據本身。可以通過主要從副本讀取數據從而減少主服務器的負載。

3.實施

  AWS關係型數據庫管理系統(RDSMS)服務,亞馬遜RDS服務,可以使只讀數據庫,也就是讀副本的創建變得十分簡單。創建只讀數據庫也可以由EC2實例來代替。

  • 爲主數據庫創建只讀副本。RDS控制的數據庫可以使用讀複本功能創建只讀副本。

  • 當應用讀取數據時,將讀副本設爲訪問地址。

  • 雖然可以使用多個讀副本,但是必須在應用端中指定。這過程中,需要使用到如HAProxy或MySQL Proxy這樣的中間件。

4.配置

圖1

5.好處

  • 如果數據庫的讀取負載很高,可以使用這種模式分散負載。

  • 如果您想執行一個進程而又不增加主數據庫的負載,這種模式也很有效,比如說一個數據分析應用。

  • 由於讀複製模式的目的不是爲了進行冗餘,所以如果你是想增加數據庫的持久性,則可以考慮採用數據庫複製模式,而不是讀副本。當然,也可以並行使用這兩種模式。

  • 特別強調,讀複本是一種異步複製,所以要當心主服務器和讀副本之間會有輕微的延遲。

  • 在RDS上禁用自動備份(即,設置“備份保留時間”爲0)將阻止讀副本從RDS上備份。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章