前言
前面我们在 需要在VMware下搭建Linux简易局域网集群?手把手教你搞定 一文中搭建了
一个Win10+CentOS7局域网集群,且其各个CentOS之间可以免密钥访问,其IP信息如下:
并在 RocketMQ环境搭建【单机版配置】一文中配置了单个Master和单个NameServer的单机版
RocketMQ,现在我们将在前面的基础上用centos7-01和centos7-02进行RocketMQ的主从同步配置
目录
3、将Master节点上的RocketMQ远程复制到Slaver节点上
一、几个问题
- 什么是主从同步?
slaver节点始终有master节点的一个备份,使其可以在必要时能担负起主节点的职责
- 为什么要主从同步?
当master宕机时,slaver可以接替master继续维持系统的运行,避免单点故障,可以提高系统的稳定性
二、配置过程
1、修改Master和Slaver节点的域名映射
打开域名映射的配置文件:
sudo vi /etc/hosts
在后面增加以下配置,保存并退出
192.168.2.129 mqnameserver2 192.168.2.129 mqmaster1slaver1
2、修改Master节点上的配置文件
① 打开RocketMQ配置文件地址
cd /usr/rocketmq47/conf
② 修改主节点配置文件 broker-a.properties
sudo vi ./broker-a.properties
修改以下几项:
brokerId=0 brokerRole=ASYNC_MASTER namesrvAddr=mqnameserver1:9876;mqnameserver2:9876
③ 修改从节点配置文件 broker-a-s.properties
sudo vi ./broker-a-s.properties
原文件为:
在后面添加以下配置信息:
namesrvAddr=mqnameserver1:9876;mqnameserver2:9876 defaultTopicQueueNums=4 autoCreateTopicEnable=true listenPort=10911 storePathRootDir=/usr/rocketmq47/mqstore storePathCommitLog=/usr/rocketmq47/mqstore/commitlog storePathConsuQueue=/usr/rocketmq47/mqstore/consumequeue storePathIndex=/usr/rocketmq47/mqstore/index maxMessageSize=65536
※ 注:这里在Master节点将主节点和从节点的配置文件均进行了配置,然后后面再拷贝给其他节点。节点的主从身份由启动时调用哪份配置文件决定,一个节点保有主从两份配置便于切换身份
3、将Master节点上的RocketMQ远程复制到Slaver节点上
Master节点切换到rocket目录的上一级目录
cd /usr && ls
远程复制rocketmq47到slaver
scp -r rocketmq47/ root@192.168.2.129:/usr/
※ root 为 centos7-02 当前登陆得用户名
Linux 小贴士 :scp命令
4、修改控制台及RocketMQ案例项目配置文件
这里要修改的相关项目,参见 我的第一个RocketMQ实例~
① 修改rocketmq-console的namesevAddr设置:
打开路径:rocketmq-console/src/main/java/org.apache.rocketmq.console/resources/application.properties
修改以下项:
② 修改MyRocketMQ的namesevAddr设置:
打开路径 MyRocketMQ/src/main/java/com.lhy/api/CONST.java
修改以下项:
5、主从同步运行验证
①运行Master节点的NameServer
②运行Master节点的Broker
③运行Master节点的NameServer
④运行Master节点的Broker
⑤运行MyProducer
⑥关闭Master节点的Broker
······终端可见当前仅剩Slaver节点
⑦运行MyConsumer
可见在没有Master节点仅剩Slaver节点的情况下,消费者依然消费成功,RocketMQ的主从同步实现成功~