利用Docker搭建Mysql 5.7强一致性集群解决方案实战
前言
最近一周在学习Docker技术,以前工作中用过Docker,K8S,实质上对于Docker 的认知只停留在是一种容器技术,对于Docker网络,宿主机目录挂载等内容只停留在使用上,并没有什么本质上的认知。本篇文章旨在利用Docker解决一个需求:部署一个Mysql集群,集群数据强一致性。
拓展:Mysql 高可用,弱一致性集群搭建解决方案之:Replication
搭建Mysql集群,首先想到的是Replication解决方案。如下图:
Replication 原理如上图所示:集群中一台Mysql 执行事务成功,事务提交之后同步到集群其他的Mysql中,但是如果这个过程有延迟或者同步数据失败,就会导致集群中数据不一致的情况出现。Replication提供高可用的解决方案,强一致性方面并不是特别突出,但是这种方案并不是没有可用的地方,比如说在一些论坛系统,评论信息等强一致要求不高的地方。
主角:Mysql强一致集群搭建解决方案:percona-xtradb-cluster
由于Replication的缺点特别明显,在一些需要强一致性的场景并不适合,比如说订单系统,需要高度强一致,Replication就显得有些鸡肋。但是,总有一些“好事者”来解决这个问题。因此,今天的主角就是percona-xtradb-cluster-Mysql强一致集群搭建解决方案。percona-xtradb-cluster是Docker hub 上一个开源的Mysql 强一致性集群搭建镜像,利用这个镜像,可以快速的搭建Mysql集群。