mysql企業常用集群架構


轉自 https://blog.csdn.net/kingice1014/article/details/76020061

1、mysql企業常用集群架構

 

在中小型互聯網的企業中。mysql的集群一般就是上圖的架構。WEB節點讀取數據庫的時候讀取dbproxy服務器。dbproxy服務器通過對SQL語句的判斷來進行數據庫的讀寫分離。讀請求負載到從庫(也可以把主庫加上),寫請求寫主庫。

這里的dbproxy是數據庫集群的唯一出口所以也需要做高可用。

drproxy是數據庫讀寫分離的常用軟件,amoeba、mycat、cobar也很常用。這類軟件不僅帶有讀寫分離功能,還可以實現負載均衡以及后端節點的健康檢查。

數據庫的讀寫分離除了通過這類數據庫中間件軟件實現,還可以寫在程序中。

通常我們的主庫要做雙主高可用,實現主庫掛掉另一個主庫立刻接管。如果不做雙主,從庫接管主庫的時候需要做狀態遷移,會有延遲。

數據庫主庫的高可用重點需要考慮的是數據同步。比較常用的高可用方案有:

1、keepalived+mysql replication。通過keepalived實現VIP飄逸,通過mysql自帶的同步方案replication實現數據同步。

2、hearbeat+drbd。通過drbd實現雙主數據的同步,這個數據同步是基於塊設備的。比一般的同步方案要快很多。通過heartbeat實現VIP漂移以及drbd資源的切換管理。

3、keepalived+mha。

對於從庫,最好不要超過5個。我們可以把其中的三個作為用戶訪問的節點,把另外一個作為內部人員的查詢節點。因為內部人員查詢節點的時候一般是按照時間段查詢,不經過索引,占用的資源比較多,所以要把這個節點單獨專用,以免影響客戶訪問。最后我們應該留一個從庫進行數據庫的數據備份。

從庫的數據一致性保持可以通過直接於主庫進行主從輔助,也可以從其他從庫那進行主從復制(優點是減少主庫壓力,缺點是延遲稍大)。

 

2、MYSQL數據架構

數據庫服務器==》數據庫(多個實例)==》多個庫==》多個表==》多個字段行列(數據)

在一台數據庫服務器上可以跑多個實例,一個實例中有多個庫,一個庫有多個表,一個表有多個行列。

 
 
QQ圖片20160620100754.png

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM