MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。
MHA Node运行在每台MySQL服务器上,主要作用是切换时处理二进制日志,确保切换尽量少丢数据。
MHA也可以扩展到如下的多节点集群:
优点:
可以进行故障的自动检测和转移;
可扩展性较好,可以根据需要扩展MySQL的节点数量和结构;
MySQL发生不可用的概率相对更低
缺点:
逻辑较为复杂,发生故障后排查问题,定位问题更加困难;
数据一致性仍然靠原生半同步复制保证,仍然存在数据不一致的风险;
可能因为网络分区发生脑裂现象;
4.MGR
MySQL官方推荐的一款高可用集群方案MySQL Group Replication,基于Paxos协议的状态机复制,彻底解决了基于传统的异步复制和半同步复制中数据一致性问题无法保证的情况,也让MySQL数据库涉及的领域更广,打开互联网金融行业的大门。
MGR提供了高可用分布式MySQL数据库服务,它可以实现服务器自动故障转移,分布式容错能力,支持多主更新的架构,自动重配置()加入/移除节点,崩溃等),并且可以自动侦测和处理冲突。
MGR适用的场景包括:
(1)弹性复制:复制架构下,服务器的数量动态增加或缩减时,使影响降到最低。
(2)分片高可用:用户可以利用MGR实现单一分片的高可用,每
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
个分片都具有一个复制组。
(3)主从复制的替代选择:可以使用单主模式避免发生冲突检测,以替代传统的主从复制。
下图为MGR的架构图:
下边分别介绍里边的内容:
MySQL Group Replication插件
=============================================================================================
该插件主要负责:
维护分布式执行内容
侦测和处理冲突
处理分布式集群的恢复(侦测成员的变化,在必要时作为贡献者提供数据,在必要时收集状态)
推送事务给其他组员
接受其他成员的事务并处理
决定事务最终的结果(提交/回滚)
5.zookeeper+proxy
Zookeeper使用分布式算法保证集群数据的一致性,使用zookeeper可以有效的保证proxy的高可用性,可以较好的避免网络分区现象的产生。