MyCat企业级应用架构实战-双主双从高可用读写分离架构-第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连接如下图,查询噢可,即可