欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

RocketMQ的双主双从集群搭建

时间:2023-05-03
文章目录

1:介绍2:准备

2.1 :准备虚拟机2.2:修改虚拟机的ip地址2.3:启动 rocketmq 的 NameServer2.4:配置配置文件

2.4.1:配置rocketmq-151 是 broker-a 的主节点2.4.2:配置rocketmq-152 是 broker-a 的从节点2.4.3:配置rocketmq-153 是 broker-b 的主节点2.4.4:配置rocketmq-154 是 broker-b 的从节点 2.5 :启动控制台,查看集群情况 1:介绍

1:本次搭建集群采用异步复制,主备有短暂消息延迟,毫秒级
2:即使磁盘损坏,消息丢失的非常少,且消息实时性不会受影响,因为Master 宕机后,消费者仍然可以从 Slave消费,此过程对应用透明。不需要人工干预。
3:Master 宕机,磁盘损坏情况,会丢失少量消息。这个是 rocket 3.5 之前都存在的,3.6之后可以支持主备切换,这个我们下次搭建。

2:准备

准备了 4台虚拟机,IP 地址准备设置成
192.168.10.151 (broker-a 主 )
192.168.10.152 (broker-a 从)
192.168.10.153 (broker-b 主 )
192.168.10.154 (broker-b 从 )

2.1 :准备虚拟机

如图,我们打开VMware,我们上次装的rocketmq 等等都放在 Master 中,我们根据 master 克隆四台机器出来:

克隆的时候,机器需要处于 未运行 状态

点击下一页

继续下一页

下一页

修改名称,我这边依次起名叫 rocketmq-151,rocketmq-152,rocketmq-153,rocketmq-154

2.2:修改虚拟机的ip地址

四台虚拟机创建好,分别启动。
首先对于 rocketmq-151 ,打开后进入命令行界面,输入账号密码

先删除网卡设备,防止连不上网

rm -rf /etc/udev/rules.d/70-persistent-net.rules


然后 执行下面命令,找到 网卡信息

cd /etc/sysconfig/network-scripts/ls


可以看到我的 叫做 ifcfg-ens33,网上很多的都是 ifcfg-eth0,还是要根据自己机器的实际展示为准,进入文件,修改 IP 地址,修改成 192.168.10.151

vi ifcfg-ens33

修改完成后,执行重启命令

// 更新网络,刷新 IP 地址service network restartreboot

重启之后,通过 xshell 继续连接,注意 IP地址是修改好的
四台机器依次执行上面的操作,只是 ip 分别不同,这点千万注意。

2.3:启动 rocketmq 的 NameServer

我们上面通过 xshell 连接过了,四个节点都要启动, 因此我们可以利用 xshell 同时给很多会话发送相同命令的特性来同时启动 4 个节点的 NameServer

Xshell同时向多个会话发送指令的方法链接: https://blog.csdn.net/weixin_30552635/article/details/95206740

我们进入到 rocketmq 文件夹下的 bin 目录下,后台启动 NameServer(多开端点容易乱)

cd /usr/local/rocketmq-4.7.1/binls./mqnamesrv &

可以看到,四台机器的 NameServer 分别启动了

2.4:配置配置文件

首先对于 rocketmq-151,我们来到它存放配置文件的地方

cd ../cd /confls

可以看见,rocketmq 官方其实已经给我们准备一些配置文件,我们配置 2主2从异步双写的这个,打开这个文件夹

名字我们一开始就是一样的,所以就不换了

2.4.1:配置rocketmq-151 是 broker-a 的主节点

按照计划,rocketmq-151 是 broker-a 的主节点,那么我们打开 broker-a.properties文件

vi broker-a.properties

继续配置,添加对 nameServer 的配置

// 四个节点的都要写上,nameServer之间互不通信,需要分别注册namesrvAddr=192.168.10.151:9876;192.168.10.152:9876;192.168.10.153:9876;192.168.10.154:9876


添加完成后,启动 rocketmq-151 的 broker

./mqbroker -c ../conf/2m-2s-async/broker-a.properties

2.4.2:配置rocketmq-152 是 broker-a 的从节点

按照计划,rocketmq-152 是 broker-a 的从节点,那么我们打开 broker-a-s.properties文件

vi broker-a-s.properties

继续配置,添加对 nameServer 的配置

// 四个节点的都要写上,nameServer之间互不通信,需要分别注册namesrvAddr=192.168.10.151:9876;192.168.10.152:9876;192.168.10.153:9876;192.168.10.154:9876

添加完成后,添加完成后,启动 rocketmq-152 的 broker

./mqbroker -c ../conf/2m-2s-async/broker-a-s.properties

2.4.3:配置rocketmq-153 是 broker-b 的主节点

按照计划,rocketmq-153 是 broker-b 的主节点,那么我们打开 broker-b.properties文件

vi broker-b.properties

继续配置,添加对 nameServer 的配置

// 四个节点的都要写上,nameServer之间互不通信,需要分别注册namesrvAddr=192.168.10.151:9876;192.168.10.152:9876;192.168.10.153:9876;192.168.10.154:9876

添加完成后,添加完成后,启动 rocketmq-153 的 broker

./mqbroker -c ../conf/2m-2s-async/broker-b.properties

2.4.4:配置rocketmq-154 是 broker-b 的从节点

按照计划,rocketmq-154 是 broker-b 的从节点,那么我们打开 broker-b-s.properties文件

vi broker-a-s.properties

继续配置,添加对 nameServer 的配置

// 四个节点的都要写上,nameServer之间互不通信,需要分别注册namesrvAddr=192.168.10.151:9876;192.168.10.152:9876;192.168.10.153:9876;192.168.10.154:9876

添加完成后,添加完成后,启动 rocketmq-154 的 broker

./mqbroker -c ../conf/2m-2s-async/broker-b-s.properties

2.5 :启动控制台,查看集群情况

我们通过 xshell 随便连接 四台机器中的一个,我这边连接 rocketmq-151,java-jar 启动控制台的springboot 项目,并通过浏览器去访问

// 这里也可以随意制定nameServer中的一个,我这里不指定,到控制台去输入java -jar rocketmq-console-ng-1.0.1.jar


能看到,启动成功,端口是 8080,我们到浏览器去访问

点击 OPS,输入一个nameServer,查看集群情况,注意nameServer 的端口号是 9876,也要输入

我们点击 Cluster ,查看集群情况

至此。两主两从的异步双写集群搭建完毕。
注意:虽然前面说过了,这里还是要提示一下,一旦Master 宕机,磁盘损坏情况,会丢失少量消息。这个是 rocket 3.5 之前都存在的,3.6之后可以支持主备切换,这个我们下次搭建

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。