RocketMQ多Master集群模式部署
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,1 概述多Master集群模式指的是一个集群无Slave,全是Maste。优点:配置简单,单个Master宕机或重启维护对应用无影响,在磁盘配置为RAID10 时,即使机器宕机不可恢复情由于RAID1
千家信息网最后更新 2026年11月02日RocketMQ多Master集群模式部署
1 概述
多Master集群模式指的是一个集群无Slave,全是Maste。
优点:配置简单,单个Master宕机或重启维护对应用无影响,在磁盘配置为RAID10 时,即使机器宕机不可恢复情
由于RAID10 磁盘非常可靠,消息也不会丢(异步刷盘丢失少量消息,同步刷盘一条不丢)。性能最高。
缺点:单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅,消息实时性会受到受到影响。
1 环境信息
| 序号 | IP地址 | 主机名 | 用户 | 角色 | 模式 |
|---|---|---|---|---|---|
| 1 | 192.168.3.41 | rocketmq01 | root | nameServer1,brokerServer1 | Master1 |
| 2 | 192.168.3.42 | rocketmq02 | root | nameServer2,brokerServer2 | Master2 |
2 安装前准备工作
2.1 /etc/hosts配置
cat >> /etc/hosts << EOF192.168.3.41 rocketmq-nameserver1192.168.3.41 rocketmq-master1192.168.3.42 rocketmq-nameserver2192.168.3.42 rocketmq-master2EOF2.2 Java环境部署
在/usr/目录下创建java目录
mkdir /usr/local/java cd /usr/local/java 下载jdk,然后解压
curl -O http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gztar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/java设置环境变量
cat >> /etc/profile << EOF#set java environment JAVA_HOME=/usr/local/java/jdk1.8.0_171JRE_HOME=/usr/java/jdk1.8.0_171/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATHEOF让修改生效
source /etc/profile验证JDK有效性
java -version java version "1.8.0_171"Java(TM) SE Runtime Environment (build 1.8.0_171-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)3 安装rocketmq
3.1 上传解压【两台机器操作】
mkdir /usr/local/rocketmq4.2cd /usr/local/rocketmq4.2curl -O https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zipunzip rocketmq-all-4.2.0-bin-release.ziprm -f rocketmq-all-4.2.0-bin-release.zipcd /usr/localln -s rocketmq4.2 rocketmqll /usr/local3.2 创建存储路径【两台机器操作】
mkdir /usr/local/rocketmq/storemkdir /usr/local/rocketmq/store/commitlogmkdir /usr/local/rocketmq/store/consumequeuemkdir /usr/local/rocketmq/store/index3.3 RocketMQ配置文件配置【两台机器】
vim /usr/local/rocketmq/conf/2m-noslave/broker-a.propertiesvim /usr/local/rocketmq/conf/2m-noslave/broker-a.propertiesbroker-a.properties配置文件内容如下:
#所属集群名字brokerClusterName=rocketmq-cluster#broker名字,注意此处不同的配置文件填写的不一样brokerName=broker-a#0 表示 Master,>0 表示 SlavebrokerId=0#nameServer地址,分号分割namesrvAddr=192.168.3.41:9876;192.168.3.42:9876#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数defaultTopicQueueNums=4#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭autoCreateTopicEnable=true#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭autoCreateSubscriptionGroup=true#Broker 对外服务的监听端口listenPort=10911#删除文件时间点,默认凌晨 4点deleteWhen=04#文件保留时间,默认 48 小时fileReservedTime=120#commitLog每个文件的大小默认1GmapedFileSizeCommitLog=1073741824#ConsumeQueue每个文件默认存30W条,根据业务情况调整mapedFileSizeConsumeQueue=300000#destroyMapedFileIntervalForcibly=120000#redeleteHangedFileInterval=120000#检测物理文件磁盘空间diskMaxUsedSpaceRatio=88#存储路径storePathRootDir=/usr/local/alibaba-rocketmq/store#commitLog 存储路径storePathCommitLog=/usr/local/alibaba-rocketmq/store/commitlog#消费队列存储路径存储路径storePathConsumeQueue=/usr/local/alibaba-rocketmq/store/consumequeue#消息索引存储路径storePathIndex=/usr/local/alibaba-rocketmq/store/index#checkpoint 文件存储路径storeCheckpoint=/usr/local/alibaba-rocketmq/store/checkpoint#abort 文件存储路径abortFile=/usr/local/alibaba-rocketmq/store/abort#限制的消息大小maxMessageSize=65536#flushCommitLogLeastPages=4#flushConsumeQueueLeastPages=2#flushCommitLogThoroughInterval=10000#flushConsumeQueueThoroughInterval=60000#Broker 的角色#- ASYNC_MASTER 异步复制Master#- SYNC_MASTER 同步双写Master#- SLAVEbrokerRole=ASYNC_MASTER#刷盘方式#- ASYNC_FLUSH 异步刷盘#- SYNC_FLUSH 同步刷盘flushDiskType=ASYNC_FLUSH#checkTransactionMessageEnable=false#发消息线程池数量#sendMessageThreadPoolNums=128#拉消息线程池数量#pullMessageThreadPoolNums=128broker-b.properties配置文件内容如下:
#所属集群名字brokerClusterName=rocketmq-cluster#broker名字,注意此处不同的配置文件填写的不一样brokerName=broker-b#0 表示 Master,>0 表示 SlavebrokerId=0#nameServer地址,分号分割namesrvAddr=192.168.3.41:9876;192.168.3.42:9876#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数defaultTopicQueueNums=4#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭autoCreateTopicEnable=true#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭autoCreateSubscriptionGroup=true#Broker 对外服务的监听端口listenPort=10911#删除文件时间点,默认凌晨 4点deleteWhen=04#文件保留时间,默认 48 小时fileReservedTime=120#commitLog每个文件的大小默认1GmapedFileSizeCommitLog=1073741824#ConsumeQueue每个文件默认存30W条,根据业务情况调整mapedFileSizeConsumeQueue=300000#destroyMapedFileIntervalForcibly=120000#redeleteHangedFileInterval=120000#检测物理文件磁盘空间diskMaxUsedSpaceRatio=88#存储路径storePathRootDir=/usr/local/alibaba-rocketmq/store#commitLog 存储路径storePathCommitLog=/usr/local/alibaba-rocketmq/store/commitlog#消费队列存储路径存储路径storePathConsumeQueue=/usr/local/alibaba-rocketmq/store/consumequeue#消息索引存储路径storePathIndex=/usr/local/alibaba-rocketmq/store/index#checkpoint 文件存储路径storeCheckpoint=/usr/local/alibaba-rocketmq/store/checkpoint#abort 文件存储路径abortFile=/usr/local/alibaba-rocketmq/store/abort#限制的消息大小maxMessageSize=65536#flushCommitLogLeastPages=4#flushConsumeQueueLeastPages=2#flushCommitLogThoroughInterval=10000#flushConsumeQueueThoroughInterval=60000#Broker 的角色#- ASYNC_MASTER 异步复制Master#- SYNC_MASTER 同步双写Master#- SLAVEbrokerRole=ASYNC_MASTER#刷盘方式#- ASYNC_FLUSH 异步刷盘#- SYNC_FLUSH 同步刷盘flushDiskType=ASYNC_FLUSH#checkTransactionMessageEnable=false#发消息线程池数量#sendMessageThreadPoolNums=128#拉消息线程池数量#pullMessageThreadPoolNums=1283.4 修改日志配置文件【两台机器】
mkdir -p /usr/local/rocketmq/logscd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml3.5 修改启动脚本参数【两台机器】
cd /usr/local/rocketmq/binvim runbroker.sh#将JAVA_OPT修改为JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"vim runserver.sh#将JAVA_OPT修改为JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"3.6 启动NameServer【两台机器】
cd /usr/local/rocketmq/binnohup sh mqnamesrv &3.7 启动BrokerServer A【192.168.3.41】
cd /usr/local/rocketmq/binnohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties > /dev/null 2>&1 &netstat -ntlpjpstail -500f /usr/local/rocketmq/logs/rocketmqlogs/broker.logtail -500f /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log3.8 启动BrokerServer B【192.168.3.42】
cd /usr/local/rocketmq/binnohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties > /dev/null 2>&1 &netstat -ntlpjpstail -500f /usr/local/rocketmq/logs/rocketmqlogs/broker.logtail -500f /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log下面的是我的公众号二维码,欢迎关注。文章转载请注明出处www.leexide.com
文件
路径
存储
消息
机器
配置
同步
集群
名字
大小
建议
数量
时间
磁盘
线程
队列
服务
地址
环境
角色
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
瑰夏咖啡
湖北九亚互联网络科技有限公司
广州紫鲸互联网科技有限公司
互联网科技保险
疫情对互联网科技公司影响
安徽鑫晟辉互联网科技
金融科技和互联网金融
盛创互联网科技有限公司
滨湖区互联网智能科技产品供应
科技大学互联网专业好不好
中国科技互联网公司收入
互联网科技实习生岗位职责
新兴科技互联网创新大赛颁奖典礼
佛山市翊博互联网络科技有限公司
阿里互联网科技企业
上海京穆互联网科技有限公司
雨阳互联网卡科技有限公司
互联网科技资金流入
悟空问答互联网科技
北京品多多互联网科技有限公司
互联网属科技
南京欣网互联网科技
广州善班互联网科技
成都狮子座互联网科技
西藏七维空间互联网科技有限公司
新华互联网科技2019
重庆威客帮互联网科技
用友工业互联网科技发展
科技互联网的核心竞争力
信承诺互联网科技有限公司