1、克隆镜像arm64镜像代码编译镜像,docker直接安装会报错所以选择编译
git clone https://github.com/apache/rocketmq-docker.git
cd rocketmq-docker
# 注意这里centos固定不要改 镜像版本可以改
sh build-image.sh 4.8.0 centos
第二步:
拉取mqconsole镜像:
candice0630/rocketmq-console-ng:2.0
第三步:
配置broker.conf
自己新建目录以及文件 /myapp/rocketmq/conf/broker.conf
配置如下:
需要修改
brokerIP1为你的ip,如果是云服务器则填写云服务器ip,本地部署填写你的网络ip不要填写127.0.0.1
# 所属集群名称,如果节点较多可以配置多个
terName = 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.156.130
#剩余磁盘比例
diskMaxUsedSpaceRatio=99
第四步编写docker-compose文件:
version: '3'
services:
namesrv:
image: apache/rocketmq:4.8.0
container_name: rmqnamesrv
ports:
- 9876:9876
command: sh mqnamesrv
broker:
image: apache/rocketmq:4.8.0
container_name: rmqbroker
ports:
- 10909:10909
- 10911:10911
- 10912:10912
volumes:
- /Users/jackson/myapp/rocketmq/conf/broker.conf:/home/rocketmq-4.8.0/conf/broker.conf
command: sh mqbroker -n namesrv:9876 -c /home/rocketmq-4.8.0/conf/broker.conf
depends_on:
- namesrv
mqconsole:
image: candice0630/rocketmq-console-ng:2.0
container_name: rmqconsole
ports:
- 8080:8080
environment:
JAVA_OPTS: -Drocketmq.config.namesrvAddr=namesrv:9876 -Drocketmq.config.isVIPChannel=false
depends_on:
- namesrv
第五步:
部署:
docker-compose -f rmq.yml up -d
最后打开dashboard: