目录
综合架构的概念
部署PXC集群
创建数据库和数据表
综合架构的概念
上一篇我们实现了PXC集群https://blog.csdn.net/Delicious_Life/article/details/106179177
PXC集群实现了同步但性能却下降了,没加PXC的集群方案采用异步但性能更高。在实际开发中,我们要把两者综合起来使用。
部署PXC集群
在上一篇我们做了node1&node2&node3的集群
由于pxc集群架构有变化,因此我们要重建pxc集群 。先分别在node1,2,3中把之前我们测试新建的数据表删掉,空空如也
停掉3个结点
docker stop pxc_node1 pxc_node2 pxc_node3
删除3个结点
docker rm pxc_node1 pxc_node2 pxc_node3
创建数据卷(存储路径:/var/lib/docker/volumes)
docker volume create haoke-v1
docker volume create haoke-v2
docker volume create haoke-v3
docker volume create haoke-v4
拉取镜像和创建网络,如果之前拉取和创建过就不需要再弄了
docker pull percona/percona-xtradb-cluster:5.7
docker network create --subnet=172.30.0.0/24 pxc-network
创建PXC集群容器,集群一
docker create -p 13306:3306 -v haoke-v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=pxc --name=pxc_node1 --net=pxc-network --ip=172.30.0.2 pxc
docker create -p 13307:3306 -v haoke-v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=pxc --name=pxc_node2 -e CLUSTER_JOIN=pxc_node1 --net=pxc-network --ip=172.30.0.3 pxc
创建集群二
docker create -p 13308:3306 -v haoke-v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=pxc --name=pxc_node3 --net=pxc-network --ip=172.30.0.4 pxc
docker create -p 13309:3306 -v haoke-v4:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=pxc --name=pxc_node4 -e CLUSTER_JOIN=pxc_node3 --net=pxc-network --ip=172.30.0.5 pxc
启动容器,先1再2,
docker start pxc_node1 && docker logs -f pxc_node1
docker start pxc_node2 && docker logs -f pxc_node2
启动成功之后我们在1或2输入命令查看集群状态,可以看到集群一搭建成功
show status like 'wsrep_cluster%';
启动集群二,先3再4
docker start pxc_node3 && docker logs -f pxc_node3
新建连接,端口13308,用户名密码都是root
docker start pxc_node4 && docker logs -f pxc_node4
端口13309
在pxc2中找一个节点,查询集群状态,可以看到集群二搭建成功了
创建数据库和数据表
分别在pxc集群一和pxc集群二中新建一个haoke数据库
然后分别在pxc集群一和pxc集群二中新建一个数据表
CREATE TABLE `tb_house_resources` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`title` varchar(100) DEFAULT NULL COMMENT '房源标题',
`estate_id` bigint(20) DEFAULT NULL COMMENT '楼盘id',
`building_num` varchar(5) DEFAULT NULL COMMENT '楼号(栋)',
`building_unit` varchar(5) DEFAULT NULL COMMENT '单元号',
`building_floor_num` varchar(5) DEFAULT NULL COMMENT '门牌号',
`rent` int(10) DEFAULT NULL COMMENT '租金',
`rent_method` tinyint(1) DEFAULT NULL COMMENT '租赁方式,1-整租,2-合租',
`payment_method` tinyint(1) DEFAULT NULL COMMENT '支付方式,1-付一押一,2-付三押一,3-付
六押一,4-年付押一,5-其它',
`house_type` varchar(255) DEFAULT NULL COMMENT '户型,如:2室1厅1卫',
`covered_area` varchar(10) DEFAULT NULL COMMENT '建筑面积',
`use_area` varchar(10) DEFAULT NULL COMMENT '使用面积',
`floor` varchar(10) DEFAULT NULL COMMENT '楼层,如:8/26',
`orientation` varchar(2) DEFAULT NULL COMMENT '朝向:东、南、西、北',
`decoration` tinyint(1) DEFAULT NULL COMMENT '装修,1-精装,2-简装,3-毛坯',
`facilities` varchar(50) DEFAULT NULL COMMENT '配套设施, 如:1,2,3',
`pic` varchar(1000) DEFAULT NULL COMMENT '图片,最多5张',
`house_desc` varchar(200) DEFAULT NULL COMMENT '描述',
`contact` varchar(10) DEFAULT NULL COMMENT '联系人',
`mobile` varchar(11) DEFAULT NULL COMMENT '手机号',
`time` tinyint(1) DEFAULT NULL COMMENT '看房时间,1-上午,2-中午,3-下午,4-晚上,5-全天',
`property_cost` varchar(10) DEFAULT NULL COMMENT '物业费',
`created` datetime DEFAULT NULL,
`updated` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='房源表';
现在我们的2个pxc集群中都新建了房源表,房源表里的数据要求强一致性~