docker-compose.yml
version: '3.8'
services:
# RocketMQ NameServer 服務(wù)
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 服務(wù)
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 服務(wù)
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 服務(wù),如果不需要可以去掉
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 換成自己的內(nèi)網(wǎng)ip
# 集群名稱(chēng)
brokerClusterName=DefaultCluster
# 節(jié)點(diǎn)名稱(chēng)
brokerName=broker-a
# Broker ID,0 表示 Master,其他正整數(shù)表示 Slave
brokerId=0
# Broker 服務(wù)地址,內(nèi)網(wǎng) IP
brokerIP1=172.xxxxxx
# Broker 角色
brokerRole=ASYNC_MASTER
# 刷盤(pán)方式
flushDiskType=ASYNC_FLUSH
# 刪除過(guò)期 commit log 的時(shí)間,默認(rèn) 04:00
deleteWhen=04
# 文件保留時(shí)間(小時(shí)),默認(rèn) 72 小時(shí)
fileReservedTime=72
# 允許 Broker 自動(dòng)創(chuàng)建 Topic,建議線(xiàn)下開(kāi)啟,線(xiàn)上關(guān)閉
autoCreateTopicEnable=true
# 允許 Broker 自動(dòng)創(chuàng)建訂閱組,建議線(xiàn)下開(kāi)啟,線(xiàn)上關(guān)閉
autoCreateSubscriptionGroup=true
# 啟用 ACL
aclEnable=true
# Broker 監(jiān)聽(tīng)端口
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
內(nèi)容里面的admin@xxx換成自己的密碼