1.拉取mq镜像
docker pull rocketmqinc/rocketmq:4.3.2
2.拉取可视化平台镜像
docker pull styletang/rocketmq-console-ng:1.0.0
3.创建nameserver挂载目录
mkdir -p /opt/rocketmq/data/namesrv/logs /opt/rocketmq/data/namesrv/store # 修改镜像名字 docker tag 【镜像id】 rocketmq:4.3.2
4.创建broker目录
mkdir -p /opt/rocketmq/data/broker/logs /opt/rocketmq/data/broker/store # 修改镜像名字 docker tag 【镜像id】 rocketmq-console:1.0.0
5.创建broker配置文件目录
mkdir -p /opt/rocketmq/data/conf
编辑配置文件
vim 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
设置broker节点所在服务器的ip地址,也就是centosOS7的服务ip
brokerIP1 = 【你的ip地址】
磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95
6.启动nameserver
docker run
-d
--restart=always
--name rocketmq_nameserver
-p 9876:9876
-e "MAX_POSSIBLE_HEAP=100000000"
-v /opt/rocketmq/data/namesrv/logs:/root/logs
-v /opt/rocketmq/data/namesrv/store:/root/store
rocketmq:4.3.2 sh mqnamesrv
7.启动broker
docker run
-d
--restart=always
--name rocketmq_broker
--link rocketmq_nameserver:namesrv
-p 10911:10911
-p 10909:10909
-v /opt/rocketmq/data/broker/logs:/root/logs
-v /opt/rocketmq/data/broker/store:/root/store
-v /opt/rocketmq/data/conf/broker.conf:/opt/rocketmq/data/conf/broker.conf
-e "NAMESRV_ADDR=192.168.1.61:9876"
-e "MAX_POSSIBLE_HEAP=200000000"
rocketmq:4.3.2 sh mqbroker
-c /opt/rocketmq/data/conf/broker.conf
8.启动可视化平台
docker run -d --restart=always --name rocketmq_console -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.1.61:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 rocketmq-console:1.0.0
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。