一、下载rocketmq二进制文件并安装docker-compose
下载rocketmq镜像和rocketmq-console镜像
二、创建目录
mkdir -p /opt/rocketmq/namesvr1/{data, log}
mkdir -p /opt/rocketmq/broker-a/store/{logs, comitlog, consumequeue, index, checkpoint, abort}
mkdir -p /opt/rocketmq/broker-b-s/store/{logs, comitlog, consumequeue, index, checkpoint, abort}
mkdir -p /opt/rocketmq/namesvr2/{data, log}
mkdir -p /opt/rocketmq/broker-b/store/{logs, comitlog, consumequeue, index, checkpoint, abort}
mkdir -p /opt/rocketmq/broker-a-s/store/{logs, comitlog, consumequeue, index, checkpoint, abort}
三、配置文件
参照我的另一篇博客
RocketMQ broker配置参数
四、编排docker-compose.yml文件
version: '3.5'
services:
namesrv1:
image: rocketmqinc/rocketmq:4.7.1
container_name: namesrv1
ports:
- 9876:9876
volumes:
- /opt/rocketmq/namesrv1/log:/opt/logs
- /opt/rocketmq/namesrv1/data:/opt/store
command: sh mqnamesrv
networks:
rocketmq:
aliases:
- namesrv1
namesrv2:
image: rocketmqinc/rocketmq:4.7.1
container_name: namesrv2
ports:
- 9876:9876
volumes:
- /opt/rocketmq/namesrv2/log:/opt/logs
- /opt/rocketmq/namesrv2/data:/opt/store
command: sh mqnamesrv
networks:
rocketmq:
aliases:
- namesrv2
broker-a:
image: rocketmqinc/rocketmq:4.7.1
container_name: broker-a
links:
- namesrv1:namesrv1
- namesrv2:namesrv2
ports:
- 10909:10909
- 10911:10911
- 10912:10912
environment:
TZ: Asia/Shanghai
NAMESRV_ADDR: "namesrv1:9876"
JAVA_OPTS: "-Duser.home=/opt"
JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
volumes:
- /opt/rocketmq/broker-a/store:/opt/store
- /opt/volumes/rocketmq-conf/:/opt/rocketmq-4.7.1/conf/2m-2s-sync
command:
sh mqbroker -c /opt/rocketmq-4.7.1/conf/2m-2s-sync/broker-a.conf
networks:
rocketmq:
aliases:
- broker-a
broker-b-s:
image: rocketmqinc/rocketmq:4.7.1
container_name: broker-b-s
links:
- namesrv1:namesrv1
- namesrv2:namesrv2
ports:
- 10919:10919
- 10921:10921
- 10922:10922
environment:
TZ: Asia/Shanghai
NAMESRV_ADDR: "namesrv2:9877"
JAVA_OPTS: "-Duser.home=/opt"
JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
volumes:
- /opt/rocketmq/broker-b-s/store:/opt/store
- /opt/volumes/rocketmq-conf/:/opt/rocketmq-4.7.1/conf/2m-2s-sync
command:
sh mqbroker -c /opt/rocketmq-4.7.1/conf/2m-2s-sync/broker-b-s.conf
networks:
rocketmq:
aliases:
- broker-b-s
broker-b:
image: rocketmqinc/rocketmq:4.7.1
container_name: broker-b
links:
- namesrv1:namesrv1
- namesrv2:namesrv2
ports:
- 11909:11909
- 11911:11911
- 11912:11912
environment:
TZ: Asia/Shanghai
NAMESRV_ADDR: "namesrv2:9876"
JAVA_OPTS: "-Duser.home=/opt"
JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
volumes:
- /opt/rocketmq/broker-a/store:/opt/store
- /opt/volumes/rocketmq-conf/:/opt/rocketmq-4.7.1/conf/2m-2s-sync
command:
sh mqbroker -c /opt/rocketmq-4.7.1/conf/2m-2s-sync/broker-b.conf
networks:
rocketmq:
aliases:
- broker-b
broker-a-s:
image: rocketmqinc/rocketmq:4.7.1
container_name: broker-a-s
links:
- namesrv1:namesrv1
- namesrv2:namesrv2
ports:
- 11919:11919
- 11921:11921
- 11922:11922
environment:
TZ: Asia/Shanghai
NAMESRV_ADDR: "namesrv2:9877"
JAVA_OPTS: "-Duser.home=/opt"
JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
volumes:
- /opt/rocketmq/broker-a-s/store:/opt/store
- /opt/volumes/rocketmq-conf/:/opt/rocketmq-4.7.1/conf/2m-2s-sync
command:
sh mqbroker -c /opt/rocketmq-4.7.1/conf/2m-2s-sync/broker-a-s.conf
networks:
rocketmq:
aliases:
- broker-a-s
rocketmq-console:
image: pangliang/rocketmq-console-ng
container_name: rocketmq-console
ports:
- 10801:8080
environment:
JAVA_OPTS:
-Drocketmq.namesrv.addr=namesrv1:9876;namesrv2:9877
-Dcom.rocketmq.sendMessageWithVIPChannel=false
networks:
rocketmq:
aliases:
- rocketmq-console
networks:
rocketmq:
name: rocketmq
driver: bridge
五、启动
docker-compose -f docker-compose.yml up -d