16 Rocketmq集群一主一从同步搭建

x33g5p2x  于2021-09-19 转载在 其他  
字(1.0k)|赞(0)|评价(0)|浏览(409)

基于前面的单机模式,我们VM里面克隆一下系统;

192.168.0.110 机器 作为主节点

192.168.0.103 机器作为从节点

配置项要点:

brokerClusterName集群名称一样;
*
brokerName同一组主从节点名称一样;
*
brokerId为0表示Master主节点,非0表示Slave从节点;

所以,从节点机器,我们修改conf下的2m-2s-sync配置文件broker-a-s.properties

从原来的broker-a.properties复制一份内容到broker-a-s.properties,然后修改三个地方:

#0 表示 Master,>0 表示 Slave
brokerId=1
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
namesrvAddr=192.168.0.110:9876;192.168.0.103:9876;

我们先把两台机器的nameserver启动起来:

192.168.0.110 主机器:

nohup sh mqnamesrv &

192.168.0.103 从机器

nohup sh mqnamesrv &

再把两台机器的broker启动起来:

192.168.0.110 主机器:

nohup sh mqbroker -c /home/mq/rocketmq/conf/2m-2s-sync/broker-a.properties &

192.168.0.103 从机器

nohup sh mqbroker -c /home/mq/rocketmq/conf/2m-2s-sync/broker-a-s.properties &

可视化控制台项目namesrvAddr配置改下:

启动控制台项目:

项目代码,生产端和消费端name-server都改下;

启动测试:

我们发现,消费消息都是从主节点broker消费;

我们模拟下,让主节点broker挂掉;

sh mqshutdown broker

启动项目生产端发送消息报错:

Exception in thread "main" org.springframework.messaging.MessagingException: No route info of this topic: java1234-rocketmq

消费端没有问题,可以继续订阅;

所有这种一主一从模式还是有问题;我们继续后面双主双从;

相关文章