在基于MySQL传统复制的时代(MySQL版本低于5.5),MHA在MySQL高可用中可以说是独领风骚。 在MySQL 5.6及GTID的出现后,MHA在这方面就显的不那么给力了,和MHA作者交流,作者基本放弃对该软件的维护了,MHA作者目前在Facebook就职,自身也没再使用MHA,他也认为在GTID环境下MHA存在的价值不大,不过如果你还在使用传统复制,还是可以考虑使用MHA做主从的高可用(太老了,建议升级)。
下面,我们围绕以下几点来讨论一下:
1、在MySQL 5.7 后为什么不需要MHA;
2、MySQL Plus 是什么,能解决什么问题?
3、MySQL Plus看他们如何搞定金融支持?
基于MySQL 5.7 GTID复制已经成熟,另外基于MySQL5.7的增强半同步性进一步提升。在使用MySQL 5.7的复制可以使用: MySQL 5.7+GTID+增强半步, 在该结构中, 不存在丢数据的问题, 即MHA在这个结构基本失去了存在的意义。
但使用: MySQL 5.7+GTID+增强半步,也意味着新的知识,可能需要DBA同学们也要更新一下知识。而且在MySQL 5.7中引入binlog group commit, 又是对复制的一个加速。
所以说MySQL5.7 在复制完整性及性能上都有较大地提升,建议没升级的同学尽快升级了。
官方对MySQL 5.7的测试传送门:https://www.mysql.com/why-mysql/benchmarks/
在3306π北京活动中 青云的蒙哲分享了青云RDS中高可用组件: MySQL Plus。
MySQL Plus是基于一套Raft构建的MySQL中自动选主及维护主从的套件,整体结构如下:
在该结构中Xenon之间会进行通信,在该结构中推荐三个节点的MySQL构建复制,听作者讲也支持两个节点的MySQL构建集群。
在MySQL Plus主要解决:
1、集群切换的强一致性(从上面架构看,更多的依赖于MySQL增强半同步,MySQL Plus在控制切换时,会做复制完成校验,从而且保证数据一致)
2、主从秒级别切换
3、无中心化自动选主
MySQL Plus 可以简单的理解是一个MySQL 5.7 GTID增强半同步复制的高可用管理组件。 在MySQL半同步配置方面,为了支持金融业务,青云给的配置如下:
rpl_semi_sync_master_wait_no_slave=ON
rpl_semi_sync_master_timeout=1000000000000000000
rpl_semi_sync_master_wait_point=AFTER_SYNC
看到这个配置我才想明白为什么他们的建议是三个节点,在rpl_semi_sync_master_timeout配置上,可以说不允许退化到异步复制, 与RadonDB负责人交流,在MySQL Plus架构中主节点上至少要求一个Slave给半同步应答,所以2个节点对架构的稳定性也是一个保证。
另外在金融环境中,作者推荐所有请求都在主库上完成,免得存在复制延迟造成交易数据异常。
在金融架构中,青云也提供了一套基于MySQL Plus之上构建建的分库分表机制, 基于MySQL的事务强一致性约,在该平台支持OLTP和OLAP更感觉有点NewSQL的感觉。
下面是官方给的一个总结:
MySQL Plus 官方要开源了,希望通过MySQL Plus给MySQL 5.7 GTID复制提供一个新的高可用方案。
如何优雅地生成仙人掌图 用途 如果某个无向连通图的任意一条边至多只出现在一条...
前情提要 11月末我司商品服务的MongoDB主库曾出现过严重抖动、频繁锁库等情况。 ...
今天遇到个问题,一个ASP网站生成静态页面时报错: Microsoft VBScript 运行时错...
前言 随着 .NET Core 3.1 的第二个预览版本发布,微软正式将 C++/CLI 移植到 .NE...
随着物联网无线通信技术的日益发展 WiFi的网络覆盖范围大移动便捷。传输速度快安...
% dim choose,path,mydb,myset,SQL,fs,mp3 ' 获得用户提交表单 (list.htm) 选中...
TPC-C是TPC组织(国际事务性能委员会)制定的关于商品销售的订单创建和订单支付等...
当用户有特殊要求时,程序员不得不研究 Ewebeditor 的代码,相当麻烦。我就是经...
this可以说是Javascript里最难理解的特性之一了,Typescript里的 this 似乎更加...
Client端代码如下: 复制代码 代码如下: html head script language="javascript...