MHA 由日本 DeNA 公司 youshimaton 开发,他认为在 GTID 环境下 MHA 存在的价值不大,MHA 最近一次发版是 2018 年。现如今使用 MySQL 已离不开 GTID ,无论是从功能、性能角度,还是从维护角度,GTID 能具备更优异的表现,针对数据业务要求不高场景,常使用 GTID+ROW+Semi-Sync 方案。
基于 MHA 和 GTID 发展现状,为适应 MySQL 版本更新的高可用业务场景,下面介绍一款可替代 MHA 的高可用方案:MySQL + Xenon
Xenon [ˈziːnɒn] ( https://github.com/radondb/xenon ) 是一款由 RadonDB 开发团队研发并开源的新一代 MySQL 集群高可用工具。基于 Raft 协议进行无中心化选主,实现主从秒级切换;基于 Semi-Sync 机制,保障数据不丢失,实现数据强一致性。并结合 MySQL(5.7 及以上版本)并行复制特性,实现 Binlog 并行回放,大大降低从库延迟。
基于 Raft(依赖于 GTID)自动选主,数据一致性依赖于增强半同步 Semi-Sync。
借助于配置项 leader-start-command 和 leader-stop-command 调用脚本完成故障切换,也可以结合 Consul,ZooKeeper 自由扩展。
结合架构图,可看出 Xenon 就是基于 Raft + Semi-Sync + GTID 实现的高可用,保证大多数节点接收到数据。
而 Raft 基于心跳管理,如果从节点超时收不到主的心跳,会尝试发起选举,若得到超过半数(非 IDLE 节点)的选票,则会当选为主节点。
下面以三节点(一主两从)Xenon 集群来简单说明工作原理。
{Leader, [GTID:{1,2,3,4,5}]
{Follower1, [GTID:{1,2,3,4,5}]
{Follower2, [GTID:{1,2,3}]
相比 MHA,Xenon 的优势如下:
支持 MySQL 5.6、5.7、8.0 内核版本。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)