Mysql集群(PXC)
Percona XtraDB Cluster(简称PXC集群)提供了MySQL高可用的一种实现方法。
PXC特性
同步复制,事务要么在所有节点提交或不提交。
多主复制,可以在任意节点进行写操作。
在从服务器上并行应用事件,真正意义上的并行复制。
节点自动配置,数据一致性,不再是异步复制。
PXC最大的优势:强一致性、无同步延迟
PXC的优点
服务高可用;
数据同步复制(并发复制),几乎无延迟;
多个可同时读写节点,可实现写扩展,不过最好事先进行分库分表,让各个节点分别写不同的表或者库,避免解决数据冲突;
新节点可以自动部署,部署操作简单;
数据严格一致性,尤其适合电商类应用;
完全兼容MySQL;
实现
1、PXC镜像安装--》本身就是mysql镜像的封装
2、网络,专门搭建一个网段来管理mysql集群
3、持久化处理,挂载实现
4、容器创建方式
步骤:
//拉镜像
docker pull percona/percona-xtradb-cluster:5.7.21
//名字太长了 打个标签
docker tag percona/percona-xtradb-cluster:5.7.21 pxc
//查看宿主机的network
docker network ls
//创建一个mysql专用的网段
docker network create --subnet=172.20.0.0/24 pxc-net
//查看当前数据卷
docker volume ls
//创建3个数据卷
docker volume create --name v1
docker volume create --name v2
docker volume create --name v3
//查看数据卷信息
docker volume inspect v1
宿主机的挂在地址
//启动命令 创建三个容器
docker run -d -p 3311:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 --privileged --name=mysql_node1 --net=pxc-net --ip 172.20.0.2 pxc
docker run -d -p 3312:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=mysql_node1 --privileged --name=mysql_node2 --net=pxc-net --ip 172.20.0.3 pxc
docker run -d -p 3313:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=mysql_node1 --privileged --name=mysql_node3 --net=pxc-net --ip 172.20.0.4 pxc
部署完成
参考:docker搭建mysql(集群+高可用+热备份)_南美鼠的博客-CSDN博客_docker mysql 高可用