MMM與MHA以及MGR,高可用架構都有以下的共同點:數據庫
須要兩個Master,同一時間只有一個Master對外提供服務,能夠說是主備模式。bash
須要基礎資源:服務器
資源 | 數量 | 說明 |
---|---|---|
主DB | 2 | 用於主備模式的主主複製 |
從DB | 0~N臺 | 能夠根據須要配置N臺從服務器 |
IP地址 | 2n+1 | N爲MySQL服務器的數量 |
監控用戶 | 1 | 用戶監控數據庫狀態的MySQL用戶(replication) |
代理用戶 | 1 | 用於MMM代理端改變read_only狀態 |
故障轉移步驟:架構
優勢:異步
缺點:工具
適用場景:spa
須要資源:插件
資源 | 數量 | 說明 |
---|---|---|
主DB | 2 | 用於主備模式的主主複製 |
從DB | 2~N臺 | 能夠根據須要配置N臺從服務器 |
IP地址 | n+2 | N爲MySQL服務器的數量 |
監控用戶 | 1 | 用戶監控數據庫狀態的MySQL用戶(replication) |
複製用戶 | 1 | 用於配置MySQL複製的用戶 |
MHA採用的是從slave中選出Master,故障轉移:3d
優勢:代理
缺點:
MHA須要自行開發VIP轉移腳本。
MHA只監控Master的狀態,未監控Slave的狀態
MGR是基於現有的MySQL架構實現的複製插件,能夠實現多個主對數據進行修改,使用paxos協議複製,不一樣於異步複製的多Master複製集羣。
支持多主模式,但官方推薦單主模式:
// 查看MGR的組員
select * from performance_schema.replication_group_members;
// 查看MGR的狀態
select * from performance_schema.replication_group_member_stats;
// 查看MGR的一些變量
show variables like 'group%';
// 查看服務器是否只讀
show variables like 'read_only%';
複製代碼
優勢:
缺點:
適用的業務場景:
讀負載大:
增長slave
加中間層(MyCat,ProxySQL,Maxscale)
讀寫分離
關於寫負載大:
參考慕課網課程,s.imooc.com/S8KFBvs