主:192.168.151.131 从 192.168.151.132
1. 修改主从hosts文件
vi /etc/hosts 加入
192.168.153.131 rocketmq.master
192.168.153.132 rocketmq.slave
2. 修改mq配置文件采用异步复制 2m-2s-async
192.168.151.131 上的配置
(1)broker-a.properties(broker-a的master配置)
namesrvAddr=rocketmq.master:9876;rocketmq.slave:9876 //所关联的namesrv地址
brokerClusterName=FusionCluster //集群名称
brokerName=broker-a
brokerId=0 //0代表主
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER //角色
flushDiskType=ASYNC_FLUSH //异步刷盘
sstorePathRootDir=/opt/logs/rocketmqlogs/store
storePathCommitLog=/opt/logs/rocketmqlogs/store/commitlog //日志存放目录
(2)broker-b-s.properties(broker-b的slave配置)
namesrvAddr=rocketmq.master:9876;rocketmq.slave:9876
brokerClusterName=FusionCluster
brokerName=broker-b
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
listenPort=10913 //更改端口号,同一台机器上两个broker不可采用同一端口
storePathRootDir=/opt/logs/rocketmqlogs/store
storePathCommitLog=/opt/logs/rocketmqlogs/store/commitlog
192.168.151.132 上的配置
(1)broker-b.properties(broker-b的master配置)
namesrvAddr=rocketmq.master:9876;rocketmq.slave:9876
brokerClusterName=FusionCluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
storePathRootDir=/opt/logs/rocketmqlogs/store
storePathCommitLog=/opt/logs/rocketmqlogs/store/commitlog //日志存放目录
(2)broker-a-s.properties(broker-a的slave配置)
namesrvAddr=rocketmq.master:9876;rocketmq.slave:9876
brokerClusterName=FusionCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
listenPort=10913
storePathRootDir=/opt/logs/rocketmqlogs/store
storePathCommitLog=/opt/logs/rocketmqlogs/store/commitlog
注意: 这里将broker-a和broker-b的主从分别放到不同的机器上启动是为了保证当与一台机器宕机时,另一台可继续工作。
3.启动服务
192.168.153.131
sed -i 's#${user.home}#/opt#g' *.xml //将conf目录下所有xml文件中的${user.home}替换成/opt,进入rocketmq/conf目录下执行该命令
mqnamesrv & 启动nameservice
mqbroker -c /opt/alibaba-rocketmq/conf/2m-2s-async/broker-a.properties & //启动broker-a主
mqbroker -c /opt/alibaba-rocketmq/conf/2m-2s-async/broker-b-s.properties & //启动broker-b从
192.168.153.132
sed -i 's#${user.home}#/opt#g' *.xml //将conf目录下所有xml文件中的${user.home}替换成/opt,进入rocketmq/conf目录下执行该命令
mqnamesrv & 启动nameservice
mqbroker -c /opt/alibaba-rocketmq/conf/2m-2s-async/broker-b.properties & //启动broker-b主
mqbroker -c /opt/alibaba-rocketmq/conf/2m-2s-async/broker-a-s.properties & //启动broker-a从
4.到此已经完成,可以发布rocketmq-console项目来查看mq的信息和配置。
创建一个topic到两个broker上
mqadmi updateTopic -c FusionCluster -b 192.168.153.131:10911 -t testbroker
mqadmi updateTopic -c FusionCluster -b 192.168.153.132:10911 -t testbroker