Skip to content

RocketMQ的安装部署

约 1174 字大约 4 分钟

2025-09-24

RocketMQ消息中间件单机于集群模式详细部署操作手册

部署单机rocketmq

解压缩包

image-20250906221934294

调整启用脚本

runserver.sh

image-20250906222607460

image-20250906222226007

runbroker.sh

image-20250906222726588

image-20250906222846379

启动nameserver服务

nohup bin/mqnamesrv &

image-20250906223427632

查看日志

tail -n 10 nohup.out

image-20250906223534799

启动成功

配置环境变量

# 编辑环境变量
vim /etc/profile
# 加载变量
source /etc/profile

添加nameserver服务的地址环境变量

image-20250907083104785

启动broker服务

nohup bin/mqbroker &

image-20250906223748367

查看日志

tail -n 10 nohup.out

image-20250906223823669

启动成功

image-20250906223853914

测试验证

发送消息

/opt/tools/rocketmq/rocketmq-all-5.3.0-bin-release/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

消费消息

/opt/tools/rocketmq/rocketmq-all-5.3.0-bin-release/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

部署rocketmq-dashboard

docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.3.237:9876" -p 8082:8082 -t registry.cn-guangzhou.aliyuncs.com/devyunze/rocketmq-dashboard:2.1.0

访问 http://ip:8082

image-20250907091124484

升级为分部署集群

机器服务名称备注
192.168.3.237(worker1)nameserver-1nameserver服务集群节点1
192.168.3.237(worker1)
192.168.3.237(worker1)
192.168.3.241(worker2)nameserver-2nameserver服务集群节点2
192.168.3.241(worker2)broker-a-masterbroker服务a节点(主)
192.168.3.241(worker2)broker-b-slavebroker服务b节点(从)
192.168.3.248(worker3)nameserver-3nameserver服务集群节点3
192.168.3.248(worker3)broker-b-masterbroker服务b节点(主)
192.168.3.248(worker3)broker-a-slavebroker服务a节点(从)

确保此时服务器上没有正在运行的broker服务

调整 worker2 的 broker 配置

broker-a-master节点

配置路径:/opt/tools/rocketmq/rocketmq-all-5.3.0-bin-release/conf/2m-2s-async/broker-a.properties

配置信息如下

# broker集群的名称,名字一样的节点就在同一个集群内
brokerClusterName=VMCluster
# 主从节点的brokerName要保持一致,保证是同一份数据
brokerName=broker-a
# brokerId为0的节点是master节点,大于0的就是slave节点
brokerId=0
# nameServer服务地址,用“;”进行分割
namesrvAddr=192.168.3.237:9876;192.168.3.241:9876;192.168.3.248:9876
deleteWhen=04
fileReservedTime=48
# 存储路径
storePathRootDir=/opt/tools/rocketmq/store
storePathCommitLog=/opt/tools/rocketmq/store/commitlog
storePathConsumeQueue=/opt/tools/rocketmq/store/consumequeue
storePathIndex=/opt/tools/rocketmq/store/index
storeCheckpoint=/opt/tools/rocketmq/store/checkpoint
aborFile=/opt/tools/rocketmq/store/abort
# broker角色,ASYNC_MASTER为主节点,SLAVE为从节点
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
# 服务端口
listenPort=10911

broker-b-slave节点

配置路径:/opt/tools/rocketmq/rocketmq-all-5.3.0-bin-release/conf/2m-2s-async/broker-b-s.properties

配置信息如下

# broker集群的名称,名字一样的节点就在同一个集群内
brokerClusterName=VMCluster
# 主从节点的brokerName要保持一致,保证是同一份数据
brokerName=broker-b
# brokerId为0的节点是master节点,大于0的就是slave节点
brokerId=1
# nameServer服务地址,用“;”进行分割
namesrvAddr=192.168.3.237:9876;192.168.3.241:9876;192.168.3.248:9876
deleteWhen=04
fileReservedTime=48
# 存储路径
storePathRootDir=/opt/tools/rocketmq/storeSlave
storePathCommitLog=/opt/tools/rocketmq/storeSlave/commitlog
storePathConsumeQueue=/opt/tools/rocketmq/storeSlave/consumequeue
storePathIndex=/opt/tools/rocketmq/storeSlave/index
storeCheckpoint=/opt/tools/rocketmq/storeSlave/checkpoint
aborFile=/opt/tools/rocketmq/storeSlave/abort
# broker角色,ASYNC_MASTER为主节点,SLAVE为从节点
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
# 服务端口
listenPort=11011

调整 worker3 的 broker 配置

broker-a-slave节点

配置路径:/opt/tools/rocketmq/rocketmq-all-5.3.0-bin-release/conf/2m-2s-async/broker-a.properties

配置信息如下

# broker集群的名称,名字一样的节点就在同一个集群内
brokerClusterName=VMCluster
# 主从节点的brokerName要保持一致,保证是同一份数据
brokerName=broker-a
# brokerId为0的节点是master节点,大于0的就是slave节点
brokerId=1
# nameServer服务地址,用“;”进行分割
namesrvAddr=192.168.3.237:9876;192.168.3.241:9876;192.168.3.248:9876
deleteWhen=04
fileReservedTime=48
# 存储路径
storePathRootDir=/opt/tools/rocketmq/storeSlave
storePathCommitLog=/opt/tools/rocketmq/storeSlave/commitlog
storePathConsumeQueue=/opt/tools/rocketmq/storeSlave/consumequeue
storePathIndex=/opt/tools/rocketmq/storeSlave/index
storeCheckpoint=/opt/tools/rocketmq/storeSlave/checkpoint
aborFile=/opt/tools/rocketmq/storeSlave/abort
# broker角色,ASYNC_MASTER为主节点,SLAVE为从节点
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
# 服务端口
listenPort=11011

broker-b-master节点

配置路径:/opt/tools/rocketmq/rocketmq-all-5.3.0-bin-release/conf/2m-2s-async/broker-b-s.properties

配置信息如下

# broker集群的名称,名字一样的节点就在同一个集群内
brokerClusterName=VMCluster
# 主从节点的brokerName要保持一致,保证是同一份数据
brokerName=broker-b
# brokerId为0的节点是master节点,大于0的就是slave节点
brokerId=0
# nameServer服务地址,用“;”进行分割
namesrvAddr=192.168.3.237:9876;192.168.3.241:9876;192.168.3.248:9876
deleteWhen=04
fileReservedTime=48
# 存储路径
storePathRootDir=/opt/tools/rocketmq/store
storePathCommitLog=/opt/tools/rocketmq/store/commitlog
storePathConsumeQueue=/opt/tools/rocketmq/store/consumequeue
storePathIndex=/opt/tools/rocketmq/store/index
storeCheckpoint=/opt/tools/rocketmq/store/checkpoint
aborFile=/opt/tools/rocketmq/store/abort
# broker角色,ASYNC_MASTER为主节点,SLAVE为从节点
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
# 服务端口
listenPort=10911

逐步启动服务

work2 服务器上启动 broker-a-master 和 broker-b-slave

cd /opt/tools/rocketmq/rocketmq-all-5.3.0-bin-release

nohup bin/mqbroker -c ./conf/2m-2s-async/broker-a.properties &

nohup bin/mqbroker -c ./conf/2m-2s-async/broker-b-s.properties &

work3 服务器上启动 broker-b-master 和 broker-a-slave

cd /opt/tools/rocketmq/rocketmq-all-5.3.0-bin-release

nohup bin/mqbroker -c ./conf/2m-2s-async/broker-b.properties &

nohup bin/mqbroker -c ./conf/2m-2s-async/broker-a-s.properties &

image-20250907124805678

docker部署

部署NameServer服务

docker run -d --name rmqnamesrv -p 9876:9876 --network rocketmq registry.cn-guangzhou.aliyuncs.com/devyunze/rocketmq:5.3.3 sh mqnamesrv

部署Broker服务

docker run -d --name rmqbroker-home --network rocketmq -p 10912:10912 -p 10911:10911 -p 10909:10909 -p 8080:8080 -p 8081:8081 -e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" -e "NAMESRV_ADDR=192.168.3.246:9876" -v /Users/gaohan/Documents/docker/rocketmq/home/broker.conf:/home/rocketmq/rocketmq-5.3.3/conf/broker.conf registry.cn-guangzhou.aliyuncs.com/devyunze/rocketmq:5.3.3 sh mqbroker --enable-proxy -c /home/rocketmq/rocketmq-5.3.3/conf/broker.conf

broker.conf配置文件

brokerIP1=192.168.3.246
brokerClusterName=LocalCluster
brokerName=broker-a
brokerId=0
defaultTopicQueueNums=2
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
autoCreateTopicEnable=true

部署Dashboard服务

docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.3.237:9876" -p 8082:8082 -t registry.cn-guangzhou.aliyuncs.com/devyunze/rocketmq-dashboard:2.1.0