PXC模式Mycat+MySQL主从架构+HAProxy负载均衡综合架构搭建(一)

目录

综合架构的概念

部署PXC集群

创建数据库和数据表


 

综合架构的概念

 

上一篇我们实现了PXC集群https://blog.csdn.net/Delicious_Life/article/details/106179177

PXC集群实现了同步但性能却下降了,没加PXC的集群方案采用异步但性能更高。在实际开发中,我们要把两者综合起来使用。 

PXC模式Mycat+MySQL主从架构+HAProxy负载均衡综合架构搭建(一)_第1张图片

  • HAProxy 作为负载均衡器
  • 部署了 2个Mycat节点作为数据库中间件
  • 部署了 2个PXC集群节点,作为2个Mycat分片,每个PXC集群中有2个节点,作为数据的同步存储
  • 部署了 1个主从复制集群
  • 同步性强的房源数据保存到 PXC分片中,其余同步性弱的数据保存到主从架构中

 

 

部署PXC集群

 

在上一篇我们做了node1&node2&node3的集群

PXC模式Mycat+MySQL主从架构+HAProxy负载均衡综合架构搭建(一)_第2张图片

由于pxc集群架构有变化,因此我们要重建pxc集群 。先分别在node1,2,3中把之前我们测试新建的数据表删掉,空空如也

PXC模式Mycat+MySQL主从架构+HAProxy负载均衡综合架构搭建(一)_第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

PXC模式Mycat+MySQL主从架构+HAProxy负载均衡综合架构搭建(一)_第4张图片

启动成功之后我们在1或2输入命令查看集群状态,可以看到集群一搭建成功

show status like 'wsrep_cluster%';

PXC模式Mycat+MySQL主从架构+HAProxy负载均衡综合架构搭建(一)_第5张图片

 

启动集群二,先3再4

docker start pxc_node3 && docker logs -f pxc_node3

新建连接,端口13308,用户名密码都是root 

PXC模式Mycat+MySQL主从架构+HAProxy负载均衡综合架构搭建(一)_第6张图片

docker start pxc_node4 && docker logs -f pxc_node4

端口13309 

PXC模式Mycat+MySQL主从架构+HAProxy负载均衡综合架构搭建(一)_第7张图片

在pxc2中找一个节点,查询集群状态,可以看到集群二搭建成功了

PXC模式Mycat+MySQL主从架构+HAProxy负载均衡综合架构搭建(一)_第8张图片

 

 

创建数据库和数据表

 

分别在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集群中都新建了房源表,房源表里的数据要求强一致性~

你可能感兴趣的:([MyCat])