查看原文
其他

Galera的未来---Group Replication发布后的思考

2016-12-14 周彦伟 ACMUG

熟悉的朋友都知道,近年来我一直不遗余力的研究使用和宣传推广Galera Cluster,在国内大大小小的各种技术大会上多次分享了我们使用Galera的方案和心得。


事实上基于Galera的PXC高可用架构解决方案已经成为去哪儿网MySQL数据库架构的主流,在内部承担了最主要的业务需求,这些需求遍布订单,交易,库存,个人信息等等多个方面,从2013年到现在,在去哪儿网发展最关键的几年里面,业务连年翻倍增长,集群打滚扩大,数据库没有掉链子拖后腿,也极大的锻炼了我们的队伍,基于此,我非常感激Galera,是它让我和我的团队以及我的公司在MySQL技术领域走在了时代的前沿。


2016.12.12日,MySQL官方发布了Group Replication(GR),可以说在MySQL领域是有划时代意义的大事件。而于我来说,其实波澜不惊,都在意料之中。基于个人以及ACMUG社区跟MySQL官方的亲密关系,我在2015年底已知MySQL官方在秘密组织人马,效仿Galera打造自己的Cluster解决方案,并且投入之大,人员之多,让人惊讶。当时我内心激动无比,因为官方的这一举动也从一个侧面也验证了我们实施Galera,追求MySQL集群化解决方案路线的正确性。我无比期待官方版Galera能尽快问世。


2016年4月间,我花了超过一个月的时间在MySQL Labs里面下载GR,并认真研究,安装测试,本来计划在接下来的DTCC中要分享这个话题的,但终因它实在是太实验室了,毫无生产价值而放弃。


2016年9月,我以MySQL ACED的身份赴旧金山参加Oracle Open World,这个时候MySQL官方已经在大规模宣传GR了,同时我也见到了GR开发团队的总监 Luis Soares,以及PXC的缔造者、Percona的老大Peter Zaitsev,大家相互交流了意见,共同期待GR的早日问世,并对Galera充满敬意和感激,毕竟它是这个方案的先驱,为MySQL的集群化道路指出了正确的方向。当然Luis也大致透露了GR 发布的时间表。所以说,Group Replication的发布,一切都在情理之中。


那么,问题就来了?GR GA之后,Galera何去何从?


需要有这么个前提,如果你要给一个东西下结论,负责任起见,你应该花精力去研究它,比较熟悉甚至大规模的使用之后,结论才能可信。


关于Galera和GR的技术细节,在此不多叙述了,目前在各自的官方网站上都可以很容易找到,遥想2012年初,我开始接触Galera的时候,很多文档还是空白,使用需要自己慢慢摸索踩坑,现在的小伙伴你们已经很幸福了。在我们即将出版的新书《MySQL运维内参--MySQL、Galera、Inception核心原理与最佳实践》中,不仅有针对Galera运维、内核的经验总结和源码分析,同时Group Replication官方研发团队核心成员的宋利兵先生以及MySQL官方技术顾问专家杜修文先生也欣然应邀,会新起一章,大篇幅介绍Group Replication的使用和原理解析。


值得注意的是,GR发布当天,MySQL的Community Manager @lefred就发布了一篇文章《Group Replication is GA  with MySQL 5.7.17-comparison with Galera》。这兄弟我在OOW见过,精明强干的小伙子,一看他的Title和身份你就会明白,这篇文章里面,Galera一定没有好果子吃的。这篇文章也迅速走红,估计很多人看GR和Galera之争是由此而起的吧。




当然,也会有人给Galera讲话,下面这个是中国的。对了,文中提到的Mark Callaghan 前几天刚刚参加了我们ACMUG 2016 MySQL 年会,人高马大,知识渊博,一看就是独当一面的将帅之才。




我的观点是这样的:


1、我很高兴看到了官方的GR发布,并期待它尽快成熟。但作为一款数据库产品,并且是在一周之前还是在Labs里面的内部开发版本产品,我不会头脑发热,马上去在生产上使用。我会关注,测试,试用,等待进一步的高版本的发布。基于上,我认为GR的生产时间,可能会在大约两年之后。看看MySQL 5.7从第一次GA到刚刚的5.7.17就知道了,试问,现在大规模的5.7有几家呢?反正我还没用上,我知道有些BUG还在修复。这两年,你不需要集群功能的话,你可以等。


2、要知道,Galera是在2007年推出来的,Galera的三个作者 SEPPO JAAKOLA,ALEXEY YURCHENKO,TEEMU OLLAKKA,他们有最多20多年的数据库集群化产品开发和使用经验,其技术能力和实力恐怕MySQL官方也没人能站出来说我一定比他们强吧。我们从2012年开始关注Galera,研究测试一年多,2013年底开始上线,即便它已经发展6年了,我们还是踩了很多坑,解决了很多问题,这些事需要积累的。没人能写出一个bug都没有的代码,特别是在数据库这种敏感工具的使用上,小心使得万年船。



3、那么MySQL官方为什么要这么着急的推出GR呢?如果你从开源的角度看,可能毫无头绪,老实说这么匆匆的宣布GA,这是对开源用户不负责啊。但是,从商务的角度看,MySQL实在是太需要太需要cluster了,多少人误入歧途掉进了NDB Cluster的坑里,问题出来了,连MySQL官方自己的技术顾问也很头疼。多少人又因此会选择MariaDB Cluster,Percona XtraDB Cluster,或者干脆弃用MySQL。要知道,MySQL的老板是个很会做生意的人,这种现象他怎能容忍?现在放出来,至少可以站住脚嘛,大家吵起来当然就最好了。


4、不要忘记了MySQL的重要分支或者对手MariaDB,2016年7月份,我当面问Monty,MariaDB在集群化的道路上怎么走?他毫不掩饰地跟我说:MariaDB走彻底的开源的道路,他不会自己去开发另一套类似GR的东西,而是继续保持跟Galera的深度合作。你明白了吧,Galera的路是开源,是社区,走的是MariaDB的路线。并且Monty也透露,目前社区里面指出的Galera的几个缺点,类似于上面lefred文中提到的性能问题,DDL问题等等,Monty和Galera团队也正在解决。技术在发展,方案在演化,代码在调优,更何况Galera还是开源的,没必要纠结二者一时技术的优劣。保守的讲,MariaDB的寿命有多长,Galera至少比它更长。


5、那么,MariaDB的寿命有多长呢?这个问题不知道是不是应该请P叔立勋来回答一下?但是我知道,在中国这片土上,MariaDB有无比强大的生命力。这个定论是基于无数的实事和商业案例的。讲一个最简单的证据:鄙国正在去O,搞软件开源化,国产化。但是啊但是,MySQL因为收购的原因,竟然在很多人眼里还是属于O,需要去的,老实说,作为MySQL的粉丝,我是很无语的。


6、去哪儿网用了那么多Gelera,将来怎么办?

很好办啊,首先我们现在使用的是一个基于Galera的完整解决方案,解决方案,不是一个单纯的Galera,它只是其中一个组件。其他周边的各种工具都是解耦的,通用的。我们会非常用心的关注Galera和GR的发展,我们很自信的能轻松做各种平滑替换。所以,我不会担心谁会死掉,东风压倒西风,西风压倒东风,又能怎样呢?当然,我也坚信Galera会好好活着,至于发展到最后,跟GR相比孰优孰劣,我只能给双方都加油了。祝双方良性发展,互通有无,促进共赢。


如果没有Galera,可能就没有Group Replication。

如果Galera死了,Group Replication能不能让你轻松的用还不好说。

如果你现在要体验集群化的快感,而不是一味的等待,那么我劝你还是用Galera。

一万年太久,只争朝夕!




注:ACMUG收录技术文章版权属于原作者本人所有。如有疑问,请联系作者。


关注ACMUG公众号,参与社区活动,交流开源技术,分享学习心得,一起共同进步。 






您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存