17 Rocketmq集群双主双从同步搭建

基于前面一主一从同步搭建

我们企业级开发,一般采用的是双主双从同步,以及异步刷盘;

同步消息保证消息不丢失,异步刷盘提高吞吐量;

我们VM里再克隆两台机器;

192.168.0.110 机器 作为m1主节点

192.168.0.103 机器作为s1从节点

192.168.0.111 机器 作为m2主节点

192.168.0.112 机器作为s2从节点

首先,我们把namesrvAddr配置修改,每个broker都要注册到所有nameserver

namesrvAddr=192.168.0.110:9876;192.168.0.103:9876;192.168.0.111:9876;192.168.0.112:9876;

刷盘机制都改成异步:

#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH

192.168.0.111 机器 作为m2主节点从m1主节点的broker-a.properties复制内容到broker-b.properties文件;

修改broker-b.properties配置文件;

修改内容如下:

brokerName=broker-b

192.168.0.112 机器 作为s2主节点从s1主节点的broker-a-s.properties复制内容到broker-b-s.properties文件;

修改broker-b-s.properties配置文件;

修改内容如下:

brokerName=broker-b

然后分别启动四个机器;

先启动nameserver:

nohup sh mqnamesrv &

再启动broker:

192.168.0.110 机器 作为m1主节点

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

192.168.0.103 机器作为s1从节点

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

192.168.0.111 机器 作为m2主节点

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

192.168.0.112 机器作为s2从节点

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8kqRgQAt-1631929516466)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210905002631199.png)]

启动控制台项目:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DZZ1e3mW-1631929516469)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210905002707640.png)]

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sf9bXnyU-1631929516470)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210905002726813.png)]

启动测试:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WwP5gd9I-1631929516471)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210905002800148.png)]

两个主节点一起分担消息处理;

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

sh mqshutdown broker

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qdre69RW-1631929516473)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210905003044496.png)]

再运行代码测试,发现b主节点承担了所有消息接收和处理;实现了高可用;

说明:这个是锋哥的RocketMQ备课笔记,等备课完,会发布配套的视频教程,如有需要,可以先加锋哥WX:java1239 欢迎白嫖

猜你喜欢

转载自blog.csdn.net/caoli201314/article/details/120361397