在基于MySQL的传统复制时代(MySQL版本低于5.5),MHA可以说是MySQL高可用的佼佼者.在MySQL5.6和GTID出现之后,MHA在这方面就没有那么强大了。我和MHA的作者沟通过,作者基本放弃了对软件的维护。MHA的作者目前在Facebook工作,不再使用MHA。他也认为MHA在GTID环境下价值不大,但如果你还在使用传统的复制,还是可以考虑使用MHA作为主从高可用(太老了,建议升级)。接下来我们讨论以下几点:1、MySQL5.7之后为什么不需要MHA;2、什么是MySQLPlus,它能解决什么问题?3.MySQLPlus看他们如何获得资金支持?为什么MySQL5.7之后不需要MHA。MySQL5.7基于GTID的复制已经成熟,基于MySQL5.7的增强型半同步得到了进一步完善。使用MySQL5.7的复制可以使用:MySQL5.7+GTID+增强半步,在这种结构下,不存在数据丢失的问题,即MHA在这种结构下基本失去了存在的意义。但是使用:MySQL5.7+GTID+半步增强也意味着新知识,可能需要DBA同学更新知识。而且,MySQL5.7引入binloggroupcommit是对复制的又一次加速。因此,MySQL5.7大大提高了复制的完整性和性能。建议还没有升级的同学尽快升级。MySQL5.7官方测试入口:https://www.mysql.com/why-mysql/benchmarks/什么是MySQLPlus,它能解决什么问题在3306π北京活动中,青云的孟哲分享了MySQLPlus的高可用组件青云RDS:MySQLPlus。MySQLPlus是一套基于Raft的MySQL自动选主和主从维护的套件。整体结构如下:在这个结构中,Xenon会相互通信。在这个结构中,推荐使用MySQL的三个节点来构建replication。听说作者也支持双节点MySQL搭建集群。MySQLPlus中主要的解决方案是:1.集群切换的强一致性(从上面的架构来看,更多的是依赖MySQL来增强半同步,在控制切换的时候,MySQLPlus会进行复制和校验,保证数据的一致性)2.主从秒级切换3.去中心化自动选主MySQLPlus看他们如何应对金融环境MySQLPlus可以简单理解为一个带有MySQL5.7GTID增强型半同步复制的高可用管理组件。mysql半同步配置方面,为了支持金融业务,青云给出的配置如下:rpl_semi_sync_master_wait_no_slave=ONrpl_semi_sync_master_timeout=1000000000000000000rpl_semi_sync_master_wait_point=AFTER_SYNC看到这个配置,想明白为什么他们建议配置三个节点。据说不允许退化为异步复制。跟RadonDB的负责人交流了一下。在MySQLPlus架构中,master节点上至少需要一个slave来给出半同步响应,所以两个节点也是架构稳定性的保证。另外,在金融环境下,笔者建议所有请求都在主库上完成,避免复制延迟导致交易数据异常。在金融架构上,青云还提供了基于MySQLPlus的分库分表机制。基于MySQL的强事务一致性契约,感觉有点像NewSQL在这个平台上支持OLTP和OLAP。以下是官方给出的总结:重磅消息:MySQLPlus正式开源,希望通过MySQLPlus为MySQL5.7GTID复制提供全新的高可用解决方案。
