本文章使用Percona XtraDB Cluster(MySQL改进版,性能提升很大)进行集群搭建,集群mysql的数量是5,宿主机为centos7。
常见集群方案
- PXC同步复制,事务在所有集群节点要么同时提交,要么不提交
- Replication采用异步复制,无法保证数据的一致性
- PXC集群实现是通过galera,而Replication是通过binlog异步同步,两者互不牵连,所以可以同时实现两种模式。而且PXC数据库可以和PXC数据库组Replication这种主从读写分离集群,也可以和MySQL官方版组成集群,因为其通过binlog进行复制所以跨版本也是可以接受的。
安装镜像
docker pull percona/percona-xtradb-cluster
名字太长了,对镜像进行重命名
docker tag percona/percona-xtradb-cluster percona
可以看到执行该命令,docker为我们复制了一份
创建内部网络
出于安全考虑,将PXC集群放置于docker内部网络中。只需将宿主的端口与之映射并开放出来即可。
docker network create --subnet=172.18.0.0/24 net1
说明:–subnet=172.18.0.0/24 自定义网段172.18.0.0,24是指24位子网掩码 net1 网段名称。
创建docker卷
docker容器的运行规则:通过目录映射的方法,将业务数据写入到宿主机中。好处是如果容器故障,只需将容器删除,重新启用一个容器即可,这样就不会丢失原来的数据。重新创建启动一个新的容器还可以继续使用。
由于PXC较为特殊,无法直接使用映射目录的方法做映射(使用后会闪退),故使用docker卷。
创建5个docker卷
docker volume create --name percona_v1
docker