架構設計(二):數據庫複製
作者:Grey
原文地址:
在架構設計(一):從單服務器模式到負載均衡設計中提到了數據庫類型的選擇,
針對大數據量,高可用的場景,數據庫複製是一種比較好的方式,其中多個數據庫實例之間可以是主/從關係。
主數據庫通常只支持寫操作。從數據庫從主數據庫獲得數據的副本,只支持讀操作。所有修改數據的命令,如插入、刪除或更新,必鬚髮送到主數據庫。大多數
應用要求的讀和寫的比例要高得多;因此,系統中的從屬數據庫的數量通常比主數據庫的數量多。以下是主/從數據庫架構的示例圖。
以上架構的優勢是
-
更好的性能。在主從模式中,所有的寫和更新都發生在主節點;而讀操作則分佈在從節點上。這種模式提高了性能,因爲它允許更多的查詢被並行處理。
-
可靠性。如果你的一個數據庫服務器被自然災害摧毀,數據仍然被保存下來。不需要擔心數據丟失,因爲數據是在多個地點複製的。
-
高可用性。通過在不同地點複製數據,即使一個數據庫脫機,網站仍然可以運行,因爲你可以訪問存儲在另一個數據庫服務器的數據。
以上架構中,存在某個數據庫服務掛了的情況,有如下兩種情況
-
某個從數據庫掛了,這個時候,如果是還有其他從數據庫可用的情況下,讀取操作將被重定向到其他健康的從數據庫,但是如果掛掉的是唯一的一個從數據庫的話,讀操作會被暫時引導到主數據庫。
-
某個主數據庫掛了,那麼一個從數據庫將被提升爲新的主數據庫。所有的數據庫操作將暫時在新的主數據庫上執行。
結合架構設計(一):從單服務器模式到負載均衡設計中的架構圖,增加數據庫複製內容以後,整個系統架構設計如下