RocketMQ 容器化部署
·
1. 启动临时容器把容器内原始配置拷贝到宿主机
docker run --rm apache/rocketmq:4.7.1 cat /home/rocketmq/rocketmq-4.7.1/conf/broker.conf > ./rmqdata/broker/conf/broker.conf
docker run --rm apache/rocketmq:4.7.1 cat /home/rocketmq/rocketmq-4.7.1/conf/plain_acl.yml > ./rmqdata/broker/conf/plain_acl.yml
docker run --rm apache/rocketmq:4.7.1 cat /home/rocketmq/rocketmq-4.7.1/conf/tools.yml > ./rmqdata/broker/conf/tools.yml
2. 验证是否是文件(重点,防止再次变成目录)
ls -l ./rmqdata/broker/conf/broker.conf
chmod -R 777 ./rmqdata
3. 配置文件
/data/rmqdata/
├── broker
└── conf/broker.conf
└── conf/plain_acl.yml
└── conf/tools.yml
├── namesrv
└── rocketmq-dashboard-data
└── users.properties
conf/broker.conf
namesrvAddr=namesrv:9876
brokerIP1=192.168.16.2
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
# Topic默认队列数量,生产建议16~32;队列越多并行消费能力越强
defaultTopicQueueNums=16
# 自动创建Topic(生产环境建议关闭 false!)
autoCreateTopicEnable=true
# 自动创建消费组(生产环境建议关闭 false!)
autoCreateSubscriptionGroup=true
# 消息文件删除时机,04=凌晨4点执行过期文件清理
deleteWhen = 04
# 消息文件保留时长,单位小时;48=保留2天
fileReservedTime = 48
# 节点角色:ASYNC_MASTER(异步主) / SYNC_MASTER(同步主) / SLAVE(从节点)
# ASYNC_MASTER:主写完立刻返回客户端,异步同步给从,性能更高;丢失风险略高
# SYNC_MASTER:主从同步完成再返回,数据更安全,性能偏低
brokerRole = ASYNC_MASTER
# 刷盘策略
# ASYNC_FLUSH 异步刷盘:消息写入pagecache就返回,后台定时落盘,性能高
# SYNC_FLUSH 同步刷盘:消息必须持久化磁盘才返回,可靠性高、性能差
flushDiskType = ASYNC_FLUSH
# 磁盘占用阈值,百分比;磁盘使用率超过99%,Broker拒绝接收新消息
diskMaxUsedSpaceRatio=99
# ====================== 下面全部是消息存储路径 ======================
# 存储根目录
storePathRootDir=/home/rocketmq/store
storePathCommitLog=/home/rocketmq/store/commitlog
storePathConsumeQueue=/home/rocketmq/store/consumequeue
storePathIndex=/home/rocketmq/store/index
storeCheckpoint=/home/rocketmq/store/checkpoint
abortFile=/home/rocketmq/store/abort
# 单条消息最大字节 65536 = 64KB;超大消息场景需要调高
maxMessageSize=65536
users.properties
# 管理员账号
admin=Rocket@123,1
# 可新增多个普通用户
dev=dev123,0
docker-compose.yml
networks:
1panel-network:
external: true
services:
namesrv:
command: sh mqnamesrv
container_name: rmq-471-rmqnamesrv
image: apache/rocketmq:4.7.1
environment:
- JAVA_OPT=-Xms128m -Xmx128m
networks:
- 1panel-network
ports:
- "9876:9876"
volumes:
- ./rmqdata/namesrv/logs:/home/rocketmq/logs
restart: always
broker:
command: sh mqbroker -c /home/rocketmq/rocketmq-4.7.1/conf/broker.conf
container_name: rmq-471-rmqbroker
environment:
- JAVA_OPT=-Xms256m -Xmx256m
image: apache/rocketmq:4.7.1
depends_on:
- namesrv
networks:
- 1panel-network
ports:
- "10909:10909"
- "10911:10911"
- "10912:10912"
volumes:
- ./rmqdata/broker/logs:/home/rocketmq/logs
- ./rmqdata/broker/store:/home/rocketmq/store
- ./rmqdata/broker/conf/broker.conf:/home/rocketmq/rocketmq-4.7.1/conf/broker.conf
- ./rmqdata/broker/conf/plain_acl.yml:/home/rocketmq/rocketmq-4.7.1/conf/plain_acl.yml
- ./rmqdata/broker/conf/tools.yml:/home/rocketmq/rocketmq-4.7.1/conf/tools.yml
restart: always
dashboard:
container_name: rmq-471-rmqdashboard
depends_on:
- namesrv
- broker
environment:
- JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 -Drocketmq.config.timeoutMillis=8000 -Drocketmq.config.loginRequired=true -Drocketmq.config.dataPath=/tmp/rocketmq-console/data
image: apacherocketmq/rocketmq-dashboard:latest
networks:
- 1panel-network
ports:
- "8088:8082"
volumes:
# 挂载用户配置持久化目录
- ./rmqdata/rocketmq-dashboard-data:/tmp/rocketmq-console/data
restart: always
docker compose up -d
更多推荐
所有评论(0)