docker-compose.yml
version: '3.8'
services:
# RocketMQ NameServer 服务
rocketmq-namesrv:
image: apache/rocketmq:5.3.1
container_name: rocketmq-namesrv
restart: always
ports:
- 9876:9876
volumes:
- ./docker/namesrv/logs:/home/rocketmq/logs
- ./docker/namesrv/store:/home/rocketmq/store
environment:
TZ: Asia/Shanghai
JAVA_OPT_EXT: "-Duser.home=/home/rocketmq -Xms512m -Xmx512m -Xmn256m"
command: ["sh", "mqnamesrv"]
networks:
rocketmq_net:
aliases:
- rocketmq-namesrv
healthcheck:
test: ["CMD", "sh", "-c", "ps aux | grep -v grep | grep mqnamesrv || exit 1"]
interval: 10s
timeout: 5s
retries: 10
start_period: 60s
# RocketMQ Broker 服务
rocketmq-broker:
image: apache/rocketmq:5.3.1
container_name: rocketmq-broker
restart: always
ports:
- 10909:10909
- 10911:10911
volumes:
- ./docker/broker/logs:/home/rocketmq/logs
- ./docker/broker/store:/home/rocketmq/store
- ./docker/plain_acl.yml:/home/rocketmq/rocketmq-5.3.1/conf/plain_acl.yml
- ./docker/broker.conf:/home/rocketmq/rocketmq-5.3.1/conf/broker.conf
environment:
TZ: Asia/Shanghai
JAVA_OPT_EXT: "-Duser.home=/home/rocketmq -Xms512m -Xmx512m -Xmn256m"
NAMESRV_ADDR: rocketmq-namesrv:9876
command: ["sh", "mqbroker", "-c", "/home/rocketmq/rocketmq-5.3.1/conf/broker.conf"]
depends_on:
rocketmq-namesrv:
condition: service_healthy
networks:
rocketmq_net:
aliases:
- rocketmq-broker
# RocketMQ Console 服务
rocketmq-console:
image: iamverygood/rocketmq-console:4.7.1
container_name: rocketmq-console
restart: always
ports:
- 8180:8080
volumes:
- ./docker/console/data:/tmp/rocketmq-console/data
environment:
TZ: Asia/Shanghai
JAVA_OPTS: >
-Drocketmq.namesrv.addr=rocketmq-namesrv:9876
-Dcom.rocketmq.sendMessageWithVIPChannel=false
-Drocketmq.config.loginRequired=true
-Drocketmq.config.aclEnabled=true
-Drocketmq.config.accessKey=accadmin
-Drocketmq.config.secretKey=admin@xxx
depends_on:
rocketmq-namesrv:
condition: service_healthy
networks:
rocketmq_net:
aliases:
- rocketmq-console
# Minio 服务,如果不需要可以去掉
minio:
image: minio/minio:latest
container_name: minio
ports:
- 9000:9000
- 9001:9001
environment:
TZ: Asia/Shanghai
MINIO_ROOT_USER: admin
MINIO_ROOT_PASSWORD: admin@xxx
MINIO_COMPRESS: "off"
MINIO_COMPRESS_EXTENSIONS: ""
MINIO_COMPRESS_MIME_TYPES: ""
volumes:
- ./docker/minio/data:/data
- ./docker/minio/config:/root/.minio
command: server --address ':9000' --console-address ':9001' /data
networks:
rocketmq_net:
aliases:
- minio
networks:
rocketmq_net:
name: rocketmq_net
driver: bridge
./docker/broker.conf
里面的172.xxxx 换成自己的内网ip
# 集群名称
brokerClusterName=DefaultCluster
# 节点名称
brokerName=broker-a
# Broker ID,0 表示 Master,其他正整数表示 Slave
brokerId=0
# Broker 服务地址,内网 IP
brokerIP1=172.xxxxxx
# Broker 角色
brokerRole=ASYNC_MASTER
# 刷盘方式
flushDiskType=ASYNC_FLUSH
# 删除过期 commit log 的时间,默认 04:00
deleteWhen=04
# 文件保留时间(小时),默认 72 小时
fileReservedTime=72
# 允许 Broker 自动创建 Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
# 允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
# 启用 ACL
aclEnable=true
# Broker 监听端口
listenPort=10911
./docker/plain_acl.yml
globalWhiteRemoteAddresses:
- 127.0.0.1
- 172.*.*.*
accounts:
- accessKey: RocketMQ
secretKey: admin@xxx
whiteRemoteAddress: 172.*.*.*
admin: true
defaultTopicPerm: PUB|SUB
defaultGroupPerm: PUB|SUB
topicPerms:
- topicA=DENY
- topicB=PUB|SUB
- topicC=SUB
groupPerms:
- groupA=DENY
- groupB=PUB|SUB
- groupC=SUB
- accessKey: accadmin
secretKey: admin@xxx
whiteRemoteAddress: 172.*.*.*
admin: true
defaultTopicPerm: PUB|SUB
defaultGroupPerm: SUB
内容里面的admin@xxx换成自己的密码