1、安装nameServer镜像
拉取nameServer
docker pull foxiswho/rocketmq:server-4.3.2
运行docker
docker run -d \
--restart=always \
--name rmqnamesrv \
-p 9876:9876 \
-v /docker/rocketmq/data/namesrv/logs:/root/logs \
-v /docker/rocketmq/data/namesrv/store:/root/store \
-e "MAX_POSSIBLE_HEAP=100000000" \
apache/rocketmq:4.9.2 \
sh mqnamesrv
--restart | 开机就运行 |
--name | 名字为rmqnamesrv |
-p | 端口为9876 |
-v | 把系统的/root/logs映射到容器内的docker/rocketmq/data/namesrv/logs |
-v | 把系统的/root/store映射到容器内的docker/rocketmq/data/namesrv/store |
-d | 后台运行 |
-e | 最大的堆内存 |
foxiswho/rocketmq:server-4.3.2 | 根据这个镜像运行 |
sh | 运行mqnamesrv |
创建配置文件
vi /docker/rocketmq/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
# 设置broker节点所在服务器的ip地址(配置你自己的)
brokerIP1 = 192.168.133.131
# 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95
2、安装Borker镜像
docker pull foxiswho/rocketmq:broker-4.3.2