高可用 | Xenon:后 MHA 时代的选择

高可用 | Xenon:后 MHA 时代的选择,第1张

在 MySQL(5.5 及以下)传统复制的时代,MHA(Master High Availability)在 MySQL 高可用应用中非常成熟。在 MySQL(5.6)及 GTID 时代开启以后,MHA 却没有与新的 MySQL 一起顺应时潮。

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 内核版本。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7224095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存