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:
http://localhost:8080/#/