基于Docker的分布式环境搭建步骤(概括)

这几天使用Docker搭建了一套分布式的环境,包括redis集群、zookeeper集群、mysql主从等等,想把里面的一些关键步骤记录一下,留着以后看。其实如果基础镜像是CentOS,那么搭建过程与非Docker环境也基本一致,所以Docker本身相关的内容就不再赘述。


Redis集群搭建(centos 6.10)

搭建Redis集群的话至少得有9台节点,主要方式就是使用redis-trib.rb的create方法进行节点创建,因此首先必须得安装ruby和gem环境,安装ruby时可能会产生版本过低的问题,解决方法详见:《搭建Redis集群引发的Ruby版本问题的解决》 这篇文章。

搭建Redis集群步骤如下:

  1. 在服务器上安装ruby和gem(只在执行创建集群命令的那台节点上安装即可,其余节点不必安装)
  2. 将修改redis.conf配置文件中的集群开关打开
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 执行./src/redis-trib.rb create --replicas 2 172.17.0.2:6379 172.17.0.3:6379 172.17.0.4:6379 172.17.0.5:6379 172.17.0.6:6379 172.17.0.7:6379 172.17.0.8:6379 172.17.0.9:6379 172.17.0.10:6379创建集群

Zookeeper集群搭建(centos 6.10)

Zookeeper集群搭建至少需要3台节点,步骤如下:

  1. 在每个zookeeper根目录下创建data文件夹和log文件夹
  2. 在每个data文件夹下创建myid文件,里面只写入一个序号,例如:1,注意每个zk节点的这个序号都不能相同
  3. 修改conf/zoo.cfg配置文件,指向第1步和第2步做的改动
    在这里插入图片描述
    注意,这里server.x中的1,2,3指的就是第2步中myid文件中的序号,对应相应的zk节点
  4. 修改完毕之后重启服务即可,可使用sh zkServer.sh status命令查看主从关系

MySQL主从搭建(debian:stretch-slim)

如果是正常在centos下安装mysql的话,那么mysql的配置文件会在/etc/my.cnf中,但是在debian的docker镜像里,配置文件的位置有一些变化,mysqld的配置文件会在/etc/mysql/mysql.conf.d/mysqld.cnf这个路径下,具体配置倒是没什么区别。

我这里使用的是3台mysql节点,一主两从,搭建步骤如下:

  1. 在mysqld.cnf文件中添加server-idlog-binrelay_log三个属性(log-bin和relay_log可以按需选择配置,后面会说到)
    在这里插入图片描述
  2. 重启mysql服务
  3. 在主机中使用show master status;命令查看主机当前的二进制文件名(对应下文master_log_file)及数据偏移量(对应下文master_log_pos)
    在这里插入图片描述
  4. 在所有从机中执行主从挂载命令,即可完成主从配置,挂载命令如下:

change master to master_host=“192.168.116.130”,
master_port=3306,
master_user=“root”,
master_password=“enter”,
master_log_file=“mysql-bin.000001”, //主机中的二进制文件名
master_log_pos=154; //主机中的二进制文件读取偏移量

  1. 在从机中执行start slave即可开启主从复制,可以通过show slave staus;命令查看从机状态,如果出现了下图显示的两个Yes即为搭建成功,已经开始了正常的主从复制。
    在这里插入图片描述
    注意: 在第1步中配置的 log-binrelay_log这两个属性,如果只做主机的话那么配置log-bin即可,从机会自动读取主机中的该文件,将其复制到自己的中继日志中,再读取中继日志完成主从复制;如果是只做从机的话,配置relay-log即可,从机从中继日志中读取日志完成主从复制。之所以两个属性都写,是考虑到做高可用时,将来从机可能会变为主机。

最后附一张MySQL的主从复制原理图:(图源:《MySQL之——主从复制的配置》
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值