一、创建一个新的网络连接

docker network create rocketmq-net

二、获取apache/rocketmq:5.1.4镜像

docker pull apache/rocketmq:5.1.4

三、创建rocketmq-namesrv容器

docker run -d --name rocketmq-namesrv --network rocketmq-net -p 9876:9876 apache/rocketmq:5.1.4 sh mqnamesrv

四、修改conf中的broker.conf文件  /home/rocketmq/rocketmq-5.1.4/conf/broker.conf

# 所属集群名称,如果节点较多可以配置多个
brokerClusterName = DefaultCluster

#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-a

#0表示Master,大于0表示不同的slave
brokerId = 0

#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04

#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48

#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
brokerRole = ASYNC_MASTER

#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH

#nameServer地址,分号分割
namesrvAddr=rocketmq-namesrv:9876

#是否允许Broker自动创建Topic
autoCreateTopicEnable = true




brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
namesrvAddr=rocketmq-namesrv:9876
autoCreateTopicEnable = true

 五、创建rocketmq-broker容器

docker run -d --name rocketmq-broker --network rocketmq-net -p 10909:10909 -p 10911:10911 -e "NAMESRV_ADDR=rocketmq-namesrv:9876" apache/rocketmq:5.1.4 sh mqbroker -n rocketmq-namesrv:9876 -c /home/rocketmq/rocketmq-5.1.4/conf/broker.conf

六、获取rocketmq-dashboard镜像 

docker pull apacherocketmq/rocketmq-dashboard:latest

七、创建rocketmq-dashboard容器

docker run -d --name rocketmq-dashboard --network rocketmq-net -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rocketmq-namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8000:8080 apacherocketmq/rocketmq-dashboard:latest

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐