RocketMQ 容器化部署

发布时间:2026/8/20 13:46:46
RocketMQ 容器化部署 1. 启动临时容器把容器内原始配置拷贝到宿主机dockerrun--rmapache/rocketmq:4.7.1cat/home/rocketmq/rocketmq-4.7.1/conf/broker.conf./rmqdata/broker/conf/broker.confdockerrun--rmapache/rocketmq:4.7.1cat/home/rocketmq/rocketmq-4.7.1/conf/plain_acl.yml./rmqdata/broker/conf/plain_acl.ymldockerrun--rmapache/rocketmq:4.7.1cat/home/rocketmq/rocketmq-4.7.1/conf/tools.yml./rmqdata/broker/conf/tools.yml2. 验证是否是文件重点防止再次变成目录ls-l./rmqdata/broker/conf/broker.confchmod-R777./rmqdata3. 配置文件/data/rmqdata/ ├── broker └── conf/broker.conf └── conf/plain_acl.yml └── conf/tools.yml ├── namesrv └── rocketmq-dashboard-data └── users.propertiesconf/broker.confnamesrvAddrnamesrv:9876brokerIP1192.168.16.2 brokerClusterNameDefaultCluster brokerNamebroker-a brokerId0# Topic默认队列数量生产建议16~32队列越多并行消费能力越强defaultTopicQueueNums16# 自动创建Topic生产环境建议关闭 falseautoCreateTopicEnabletrue# 自动创建消费组生产环境建议关闭 falseautoCreateSubscriptionGrouptrue# 消息文件删除时机04凌晨4点执行过期文件清理deleteWhen04# 消息文件保留时长单位小时48保留2天fileReservedTime48# 节点角色ASYNC_MASTER(异步主) / SYNC_MASTER(同步主) / SLAVE(从节点)# ASYNC_MASTER主写完立刻返回客户端异步同步给从性能更高丢失风险略高# SYNC_MASTER主从同步完成再返回数据更安全性能偏低brokerRoleASYNC_MASTER# 刷盘策略# ASYNC_FLUSH 异步刷盘消息写入pagecache就返回后台定时落盘性能高# SYNC_FLUSH 同步刷盘消息必须持久化磁盘才返回可靠性高、性能差flushDiskTypeASYNC_FLUSH# 磁盘占用阈值百分比磁盘使用率超过99%Broker拒绝接收新消息diskMaxUsedSpaceRatio99# 下面全部是消息存储路径 # 存储根目录storePathRootDir/home/rocketmq/storestorePathCommitLog/home/rocketmq/store/commitlogstorePathConsumeQueue/home/rocketmq/store/consumequeuestorePathIndex/home/rocketmq/store/indexstoreCheckpoint/home/rocketmq/store/checkpointabortFile/home/rocketmq/store/abort# 单条消息最大字节 65536 64KB超大消息场景需要调高maxMessageSize65536users.properties# 管理员账号adminRocket123,1# 可新增多个普通用户devdev123,0docker-compose.ymlnetworks: 1panel-network: external:trueservices: namesrv: command:shmqnamesrv container_name: rmq-471-rmqnamesrv image: apache/rocketmq:4.7.1 environment: -JAVA_OPT-Xms128m-Xmx128mnetworks: - 1panel-network ports: -9876:9876volumes: - ./rmqdata/namesrv/logs:/home/rocketmq/logs restart: always broker: command:shmqbroker-c/home/rocketmq/rocketmq-4.7.1/conf/broker.conf container_name: rmq-471-rmqbroker environment: -JAVA_OPT-Xms256m-Xmx256mimage: apache/rocketmq:4.7.1 depends_on: - namesrv networks: - 1panel-network ports: -10909:10909-10911:10911-10912:10912volumes: - ./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.addrnamesrv:9876-Drocketmq.config.timeoutMillis8000-Drocketmq.config.loginRequiredtrue-Drocketmq.config.dataPath/tmp/rocketmq-console/data image: apacherocketmq/rocketmq-dashboard:latest networks: - 1panel-network ports: -8088:8082volumes:# 挂载用户配置持久化目录- ./rmqdata/rocketmq-dashboard-data:/tmp/rocketmq-console/data restart: alwaysdockercompose up-d