主从采用同步双写,刷盘采用异步刷盘模式,参考集群(broker cluster)架构如下:
参考前面的RocketMQ集群搭建,上传RocketMQ源码包到各个服务节点,进行编译部署。由于机器内存限制,需要修改运行脚本(runbroker.sh runserver.sh)的默认jvm内存参。在部署broker前还需启动nameserver。
一 部署master a根据安装目录修正如下路径进入修改配置文件
/usr/local/java/rocketmq/rocketmq/distribution/target/apache-rocketmq/conf/2m-2s-sync/broker-a.properties
#nameserver地址填写实际部署访问地址,多个节点用;分割 namesrvAddr=192.168.50.138:9876;192.168.50.139:9876 brokerClusterName=DefaultCluster brokerName=broker-a brokerId=0 deleteWhen=04 fileReservedTime=48 brokerRole=SYNC_MASTER flushDiskType=ASYNC_FLUSH defaultTopicQueueNums=4 #是否运行自动创建Topic,建议线下开启,线上关闭 autoCreateTopicEnable=true #是否自动创建订阅组,建议线下开启,线上关闭 autoCreateSubscriptionGroup=false #ਂؙ存储路径根据需求配置绝对路径,默认是在home目录下 #storePathRootDir= #storePathCommitLog
启动主节点a
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a.properties &
如果启动成功 则主节点a搭建完成。
二 部署slave a根据安装目录修正如下路径进入修改配置文件
/usr/local/java/rocketmq/rocketmq/distribution/target/apache-rocketmq/conf/2m-2s-sync/broker-a-s.properties
#nameserver地址填写实际部署访问地址,多个节点用;分割 namesrvAddr=192.168.50.138:9876;192.168.50.139:9876 brokerClusterName=DefaultCluster brokerName=broker-a brokerId=1 deleteWhen=04 fileReservedTime=48 brokerRole=SLAVE flushDiskType=ASYNC_FLUSH defaultTopicQueueNums=4 #是否运行自动创建Topic,建议线下开启,线上关闭 autoCreateTopicEnable=true #是否自动创建订阅组,建议线下开启,线上关闭 autoCreateSubscriptionGroup=false #ਂؙ存储路径根据需求配置绝对路径,默认是在home目录 #storePathRootDir= #storePathCommitLog
主节点a的从节点只是和主节点a在配置上brokerId不同,0代表主节点,其他代表从节点。
启动主节点a的从节点。
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a-s.properties &三 部署master b
根据安装目录修正如下路径进入修改配置文件
/usr/local/java/rocketmq/rocketmq/distribution/target/apache-rocketmq/conf/2m-2s-sync/broker-b.properties
#nameserver地址填写实际部署访问地址,多个节点用;分割 namesrvAddr=192.168.50.138:9876;192.168.50.139:9876 brokerClusterName=DefaultCluster brokerName=broker-b brokerId=0 deleteWhen=04 fileReservedTime=48 brokerRole=SYNC_MASTER flushDiskType=ASYNC_FLUSH #是否运行自动创建Topic,建议线下开启,线上关闭 autoCreateTopicEnable=true #是否自动创建订阅组,建议线下开启,线上关闭 autoCreateSubscriptionGroup=false #ਂؙ存储路径根据需求配置绝对路径,默认是在home目录 #storePathRootDir= #storePathCommitLog
启动主节点b
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b.properties &四 部署slave b
根据安装目录修正如下路径进入修改配置文件
/usr/local/java/rocketmq/rocketmq/distribution/target/apache-rocketmq/conf/2m-2s-sync/broker-b-s.properties
#nameserver地址填写实际部署访问地址,多个节点用;分割 namesrvAddr=192.168.50.138:9876;192.168.50.139:9876 brokerClusterName=DefaultCluster brokerName=broker-b brokerId=1 deleteWhen=04 fileReservedTime=48 brokerRole=SLAVE flushDiskType=ASYNC_FLUSH #是否运行自动创建Topic,建议线下开启,线上关闭 autoCreateTopicEnable=true #是否自动创建订阅组,建议线下开启,线上关闭 autoCreateSubscriptionGroup=false #ਂؙ存储路径根据需求配置绝对路径,默认是在home目录 #storePathRootDir= #storePathCommitLog
启动主节点b的从节点
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b-s.properties &
集群搭建完成。



