美文网首页
② 微服务环境搭建 - MySQL Docker 双主 + Ke

② 微服务环境搭建 - MySQL Docker 双主 + Ke

作者: hdfg159 | 来源:发表于2021-05-16 12:37 被阅读0次

    MySQL

    Docker Compose 文件

    版本: 5.7

    程序目录: /root/mysql

    高可用方式:

    • 双主 + VIP 两个 MySQL 双主同步,一台对线上提供服务,另一台冗余以保证高可用,KeepAlived 存活探测,相同 Virtual IP 提供服务。
    • 自动故障转移:当写库挂了的时候,KeepAlived 能够探测到,会自动的进行故障转移,由于使用的是相同的virtual IP,这个切换过程对调用方是透明的。
    服务器 说明 端口 读写
    19.50.79.28 主库1 3000 可读可写
    19.50.79.27 主库2 3000 可读可写

    配置修改

    mysql/master1/.envmysql/master2/.env 环境变量根据实际情况修改

    MSYQL环境配置修改.png

    主库 1 19.50.79.28 启动容器

    cd && cd mysql/master1 && chmod 755 -R conf && chmod 755 -R data && docker-compose up -d
    

    必须先启动这个,用命令 docker-compose logs -f 查看日志,等待日志出现 **** port: 3306 MySQL Community Server (GPL) 启动成功才启动下一个

    主库 2 19.50.79.27 启动容器

    cd && cd mysql/master2 && chmod 755 -R conf && chmod 755 -R data && docker-compose up -d
    

    查看互为主从复制是否成功

    分别进入 主库 1 19.50.79.28 和 主库 2 19.50.79.27 数据库 容器

    docker-compose exec mysql-master bash
    

    两个主库分别登录数据库 root 用户

    mysql -uroot -p<密码>
    

    mysql -uroot -pUu4oOGPm5lS6bley0w5PlHh3EUm7DCQguxWF

    [执行sql] 分别在两个数据库上执行sql ,查看主从状态

    SHOW SLAVE STATUS  \G;
    

    期待结果: Slave_IO_Running、Slave_SQL_Running 字段值均为 YES 是成功

    注意问题

    • MySQL 双主情况下对任一个数据库写创建等操作都会同步到另一个数据库

    KeepAlived (MySQL) 部署

    部署 keepalived 案例

    机器 19.50.79.28/19.50.79.27

    服务器 1 (19.50.79.28)部署:

    配置文件在 keepalived-mysql/m1/conf/keepalived-m1.conf 根据实际需要修改

    keepalived-mysql-m1.png
    cd && cd keepalived-mysql/m1 && chmod 755 -R data/ && docker-compose up -d
    

    服务器 2 (19.50.79.27)部署:

    配置文件在 keepalived-mysql/m2/conf/keepalived-m2.conf 根据实际需要修改

    keepalived-mysql-m2.png
    cd && cd keepalived-mysql/m2 && chmod 755 -R data/ && docker-compose up -d
    

    docker-compose 查看日志输出

    查看 KeepAlived 主备状态,其中一个服务器日志输出是 MASTER 状态,另一个服务器日志是 BACKUP 状态

    docker-compose logs -f
    

    注意问题

    • keepalived 配置必须认真修改,核对掩码位和绑定网卡是否正确
    • keepalived 如果部署成功,一台服务器 keepalived 输出是 MASTER 状态,另一台服务器 keepalived 输出是 BACKUP 状态
    • 访问数据库只需要访问 VIP + 端口号

    相关文章

      网友评论

          本文标题:② 微服务环境搭建 - MySQL Docker 双主 + Ke

          本文链接:https://www.haomeiwen.com/subject/vualjltx.html