淺談MySQL叢集高可用架構
高可用架構對於網際網路服務基本是標配,無論是應用服務還是資料庫服務都需要做到高可用。對於一個系統而言,可能包含很多模組,比如前端應用,快取,資料庫,搜尋,訊息佇列等,每個模組都需要做到高可用,才能保證整個系統的高可用。對於資料庫服務而言,高可用可能更復雜,對使用者的服務可用,不僅僅是能訪問,還需要有正確性保證,因此資料庫的高可用方案是一直以來的討論熱點,今天就各種的高可用方案,談一下個人的一些看法,如有錯誤,還請指正!!
此種架構,一般初創企業比較常用,也便於後面步步的擴充套件
此架構特點:
1、成本低,佈署快速、方便
2、讀寫分離
3、還能通過及時增加從庫來減少讀庫壓力
4、主庫單點故障
5、資料一致性問題(同步延遲造成)
通過DRBD基於block塊的複製模式,快速進行雙主故障切換,很大程度上解決主庫單點故障問題
此架構特點:
1、高可用軟體可使用Heartbeat,全面負責VIP、資料與DRBD服務的管理
2、主故障後可自動快速切換,並且從庫仍然能通過VIP與新主庫進行資料同步
3、從庫也支援讀寫分離,可使用中介軟體或程式實現
MHA目前在Mysql高可用方案中應該也是比較成熟和常見的方案,它由日本人開發出來,在mysql故障切換過程中,MHA能做到快速自動切換操作,而且還能最大限度保持資料的一致性
此架構特點:
1、安裝佈署簡單,不影響現有架構
2、自動監控和故障轉移
3、保障資料一致性
4、故障切換方式可使用手動或自動多向選擇
5、適應範圍大(適用任何儲存引擎)
MMM即Master-Master Replication Manager for MySQL(mysql主主複製管理器),是關於mysql主主複製配置的監控、故障轉移和管理的一套可伸縮的指令碼套件(在任何時候只有一個節點可以被寫入),這個套件也能基於標準的主從配置的任意數量的從伺服器進行讀負載均衡,所以你可以用它來在一組居於複製的伺服器啟動虛擬ip,除此之外,它還有實現資料備份、節點之間重新同步功能的指令碼。
MySQL本身沒有提供replication failover的解決方案,通過MMM方案能實現伺服器的故障轉移,從而實現mysql的高可用。
此方案特點:
1、安全、穩定性較高,可擴充套件性好
2、 對伺服器數量要求至少三臺及以上
3、 對雙主(主從複製性要求較高)
4、 同樣可實現讀寫分離
Mysql官方推出的叢集高可用方案,由於本人沒有用過,不好評價
摘自網路上的一段解釋
MySQL Cluster 由一組計算機構成,每臺計算機上均執行著多種程式,包括 MySQL伺服器,NDB Cluster的資料節點,管理伺服器,以及(可能)專門的資料訪問程式。
由於MySQL Cluster架構複雜,部署費時(通常需要DBA幾個小時的時間才能完成搭建),而依靠 MySQL Cluster Manager 只需一個命令即可完成,但 MySQL Cluster Manager 是收費的。並且業內資深人士認為NDB 不適合大多數業務場景,而且有安全問題。因此,使用的人數較少。
有興趣的可以研究下官方文件:
https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-install-linux.html
歡迎大家在文未留言,發表自己對高可用架構的一些看法和理解!!!
精選留言點贊第一名有驚喜相送!!!!!
淺談MySQL叢集高可用架構 https://mp.weixin.qq.com/s?__biz=MzI0MDQ4MTM5NQ==&mid=2247484844&idx=1&sn=48da7e08cb16c70e935964b88574bc74&chksm=e91b60b0de6ce9a62b6fbefd2cb522f812aa61bbf9be99e5dc1414bae3b38799cbd8c28a8e1b&mpshare=1&scene=23&srcid=1215kVNOfrK3D2LIFnPTKONz#rd
相關文章
- 構建MHA實現MySQL高可用叢集架構MySql架構
- MySQL叢集架構:MHA+MySQL-PROXY+LVS實現MySQL叢集架構高可用/高效能MySql架構
- mysql高可用叢集之MMMMySql
- 淺談OB高可用架構下的RTO與RPO架構
- Mysql高可用架構方案MySql架構
- MySQL 高可用架構之 MMM 架構MySql架構
- RabbitMQ從零到叢集高可用(.NetCore5.0) -高可用叢集構建落地MQNetCore
- 搭建 MySQL 高可用高效能叢集MySql
- MySQL高可用架構對比MySql架構
- mysql高可用架構MHA搭建MySql架構
- 使用Keepalived構建LVS高可用叢集
- MySQL叢集搭建(6)-雙主+keepalived高可用MySql
- PostgreSQL repmgr高可用叢集+keepalived高可用SQL
- MySQL高可用架構設計分析MySql架構
- MySQL高可用架構:mysql+keepalived實現MySql架構
- 構建生產環境可用的高可用kubernetes叢集
- zookeeper 高可用叢集搭建
- MongoDB高可用叢集搭建MongoDB
- 搭建 Kubernetes 高可用叢集
- Redis叢集與高可用Redis
- PostgreSQL patroni高可用叢集SQL
- 淺談高可用設計
- MySQL 實現高可用架構之 MHAMySql架構
- MySQL高可用架構-MMM、MHA、MGR、PXCMySql架構
- MySQL高可用架構之Keepalived+主從架構部署MySql架構
- 高可用架構架構
- WEB叢集- 高可用服務Web
- 高可用mongodb叢集(分片+副本)MongoDB
- 10、redis哨兵叢集高可用Redis
- Redis快取高可用叢集Redis快取
- MySQL主從原理, 高可用架構與高效能架構MySql架構
- MySQL資料庫架構——高可用演進MySql資料庫架構
- mysql高可用架構MHA搭建(centos7+mysql5.7.28)MySql架構CentOS
- [雲原生微服務架構](十一) Kubernetes高可用叢集二進位制部署(Runtime Containerd)微服務架構AI
- Redis高可用-主從,哨兵,叢集Redis
- 高可用叢集之corosync+pacemakerROS
- 使用Kubeadm搭建高可用Kubernetes叢集
- InnoDB架構淺談架構
- MySQL高可用架構之MHA 原理與實踐MySql架構