即将开源的新一代MySQL高可用组件:MySQL Plus

导读

作者:吴炳锡,知数堂联合创始人,3306π社区创立者 原文地址:http://wubx.net/qingcloud-mysql-plus/

在基于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后为什么不需要MHA

基于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/

MySQL Plus是什么,能解决什么问题

在3306π北京活动中 青云的蒙哲分享了青云RDS中高可用组件: MySQL Plus。

MySQL Plus是基于一套Raft构建的MySQL中自动选主及维护主从的套件,整体结构如下:

在该结构中Xenon之间会进行通信,在该结构中推荐三个节点的MySQL构建复制,听作者讲也支持两个节点的MySQL构建集群。

在MySQL Plus主要解决:

1、集群切换的强一致性(从上面架构看,更多的依赖于MySQL增强半同步,MySQL Plus在控制切换时,会做复制完成校验,从而且保证数据一致)

2、主从秒级别切换

3、无中心化自动选主

MySQL Plus看他们如何搞定金融环境

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复制提供一个新的高可用方案。

更重大消息:

QingCloud RDS : RadonDB也要开源了,大家敬请期待。

原文发布于微信公众号 - 3306pai(pai3306)

原文发表时间:2018-04-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构师小秘圈

出行领域架构设计

作者:王小雪。滴滴出行架构师,原快的打车架构师。 来源:程序员杂志 某知名打车平台从随着业务的发展,系统访问量迅速膨胀,很多复杂的问题要在短时间内解决,且不能影...

43140
来自专栏「3306 Pai」社区

构建MySQL自动化平台思路

这里做个小预告,可能下周或者下下周。我的好基友顺子要给大家讲讲MHA的故事。请期待~~

24620
来自专栏Golang语言社区

数据库中间件

作者:[美]威廉·肯尼迪(William Kennedy)布赖恩·克特森(Brian

86070
来自专栏性能与架构

又拍网数据库架构案例分析

这篇文章是对又拍网公布的数据库案例的分析总结 又拍网是一个大型照片分享社区,数据库架构也是从简单到复杂发展起来的 数据库进化过程 (1)一主一从 最初...

31560
来自专栏架构师之路

缓存架构设计细节二三事

本文主要讨论这么几个问题: (1)“缓存与数据库”需求缘起 (2)“淘汰缓存”还是“更新缓存” (3)缓存和数据库的操作时序 (4)缓存和数据库架构简析 一、...

43790
来自专栏数据和云

insert into太慢?Roger 带你找真凶

李真旭(Roger) ACOUG 核心专家,Oracle ACE,云和恩墨技术专家 编辑手记:昨天谈到索引并不是万能的,事实上很多无用的索引给数据库带来很大的维...

49740
来自专栏农夫安全

一次比较简单的手工ASP注入

前言 这是一个比较新手中的新手注入。这是之前群里一个朋友丢给我的站点,说有注入点,但是他手上没有工具,他知道我有工具就叫我帮忙看一下。 一般我有个习惯,进去先在...

1.2K60
来自专栏前端开发

PHP制作 微信、支付宝、QQ支付多合一收款二维码

51940
来自专栏Java架构沉思录

数据库分库分表如何避免“过度设计”和“过早优化”

关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引...

23920
来自专栏数据和云

没有宫廷内斗,数据库界的延禧攻略

作者 | 张甦, 数据库领域的专家和知名人士、图书《MySQL王者晋级之路》作者,51CTO 专家博主。近10年互联网线上处理及培训经验,专注于 MySQL 数...

12420

扫码关注云+社区

领取腾讯云代金券