MyCat企业级应用架构实战-双主双从高可用读写分离架构-第1章

  1. 概要

             keepalived-2.0.20+mycat1.6.7.4+mysql5.7.29 双主双从读写分离高可用架构,如下图

           

 

MyCat企业级应用架构图-双主双从高可用读写分离架构

1  mycat通过keepalived实现高可用配置,不会因为mycat宕机了,整个数据库         层就相当于宕机了
2  mysql实现双主复制即master1和master2互为主从复制,高可用读写分离配置
3 master之间互相更新数据,且每个master都有两个slave,形成双从结构

2 使用docker  19.03.8进行项目部署

docker 默认使用桥接网络模式
查看网络模式 ip每次启动都会重新分配ip

NETWORK ID          NAME                DRIVER              SCOPE
ee791d2a8e4f        bridge              bridge              local
496c15105290        host                host                local
77712ffe4846        none                null                local

创建自定义的网络模式,使用172.20.0.0
docker network create --subnet=172.20.0.0/24 extnetwork
#docker network rm  extnetwork

如图为增加后的网络extnetwork

容器指定ip地址
c_mycat                 172.20.0.10
c_mysql_master1 172.20.0.11
c_mysql_slave1    172.20.0.12
c_mysql_master2 172.20.0.13
c_mysql_slave2    172.20.0.14

3 创建mysql使用docker 镜像

如果没有mysql镜像需要从docker pull mysql:5.7 下载

使用镜像创建mysql容器

docker run -id \
-p 3311:3306 \
--name=c_mysql_master1 -d \
-v /home/mysql1/conf:/etc/mysql/mysql.conf.d/ \
-v /home/mysql1/log:/var/log/ \
--net extnetwork --ip 172.20.0.11 \
-e MYSQL_ROOT_PASSWORD=123456 \
66371c06f4ca

docker run -id \
-p 3312:3306 \
--name=c_mysql_slave1 -d \
-v /home/mysql2/conf:/etc/mysql/mysql.conf.d/ \
-v /home/mysql2/log:/var/log/ \
--net extnetwork --ip 172.20.0.12 \
-e MYSQL_ROOT_PASSWORD=123456 \
66371c06f4ca

docker run -id \
-p 3313:3306 \
--name=c_mysql_master2 -d \
-v /home/mysql3/conf:/etc/mysql/mysql.conf.d/ \
-v /home/mysql3/log:/var/log/ \
--net extnetwork --ip 172.20.0.13 \
-e MYSQL_ROOT_PASSWORD=123456 \
66371c06f4ca

docker run -id \
-p 3314:3306 \
--name=c_mysql_slave2 -d \
-v /home/mysql4/conf:/etc/mysql/mysql.conf.d/ \
-v /home/mysql4/log:/var/log/ \
--net extnetwork --ip 172.20.0.14 \
-e MYSQL_ROOT_PASSWORD=123456 \
66371c06f4ca
 

创建完成后如图

使用navicat连接如下图,查询噢可,即可

 

 

发布了27 篇原创文章 · 获赞 11 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/huoran668/article/details/105602529