很多同学表示昨天的 从你的全世界路过 画风不对,好在今天MySQL界终于有大事情发生。当昨天小伙伴们沉浸于双12的买买买节奏中,孰料远在美国西海岸的Oracle官方放出了最新的 MySQL 5.7.17 版本。更为重要的是,MySQL Group Replication(下简称MGR)终于来了。
在之前的 MySQL的一致性世界 的文章中,Inside君已经表示腾讯基于Paxos的强一致方案虽好,但官方基于Paxos的方案早已箭在弦上,作为第三方去做这样功能的开发并不见得能有很好的收益。
MGR准确来说是Oracle官方推出的一种高可用解决方案,其包含下面的特性:
有小伙伴也把MGR称为MySQL版的RAC。当然,这两者架构上还是有很大的差别,MGR是Share Nothing,Oracle RAC是Share Everything。
熟悉Galera的同学肯定会说,MGR和Gelera非常相像。而已有一部分不怕死的公司在生产环境尝试用Galera高可用解决方案,甚至是在某些银行。但他们遇到的问题却非常严重,相信真正在生产环境中使用过Galera的同学必定会同意我的观点。而MGR的优点在于:
先看多个主节点(multi-master)下,MGR的性能提升,即多个节点同时读写测试[1]:
当参数flow-control-mode设置为disable时,即允许集群节点间存在延迟,这时随着节点数的不断增加,MGR集群的性能可有明显地提升。若为保障读一致性,则MGR集群性能在5个节点时,几乎于单MySQL实例性能相当。
小伙伴们最关心的MGR vs Galera[2]:
无需多言,上面的测试结果基本宣告了Galera的死亡。曾经,Galera是款伟大而又引领时代的产品,死于2016年12月12日。
MGR只是Oracle官方野心的第一步,Inside君更期待未来InnoDB Cluster[3]的GA。从目前的发展路线图看,未来官方会将其打造成一个分布式的文档数据库集群,对手当然是更为强大的MongoDB。但是,一个支持事务,支持行级锁与MVCC,支持数据强一致保障,基于互联网最流行与稳定的MySQL的分布式文档数据库,又有谁能拒绝这样的诱惑?
最后,不要错过Inside君亲授的 第3期MySQL网络班 ,双12最后一天优惠,6388元。明年2月开课,将会加入MySQL Group Replication的技术介绍与使用。报名咨询可微信我:82946772。