Use docker to run the stand-alone version of the report 253
ConanEdogawa1 opened this issue · 1 comments
ConanEdogawa1 commented
089fbec3e3e0 rocketmqinc/rocketmq:4.4.0 "sh mqbroker -c /o..." 30 minutes ago Exited (253) 3 second ago
hepengju commented
容器内部用的rocketmq用户,因此文件映射到外部时,注意外部的目录权限改为777.
以下是我处用docker-compose启动的,供参考:
# 创建文件夹
mkdir -p /data/rocketmq/{namesrv/logs,broker/logs,broker/store}
# 修改配置
vim /data/rocketmq/broker/broker.conf
---
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 以下配置是手动新增的
brokerIP1=192.168.180.120
autoCreateTopicEnable=true
traceTopicEnable=true
waitTimeMillsInSendQueue=1000
---
# 修改权限(因为容器内部是用rocketmq用户启动的)
chmod 777 /data/rocketmq/ -R
# 创建docker-compose.yml文件(如下)
docker compose up -d
# 不同环境注意修改IP地址和JVM参数大小
version: '3.2'
services:
# MQ-NameSrv
rmqnamesrv:
image: apache/rocketmq:4.7.1
container_name: rmqnamesrv
ports:
- 9876:9876
environment:
JAVA_HOME: "/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64"
JAVA_OPT_EXT: "-Xms1024m -Xmx1024m -Xmn512m"
volumes:
- /data/rocketmq/namesrv/logs:/home/rocketmq/logs
command: sh mqnamesrv
# MQ-Broker
rmqbroker:
image: apache/rocketmq:4.7.1
container_name: rmqbroker
depends_on:
- rmqnamesrv
ports:
- 10909:10909 # fastRemotingServer服务组件使用,主要用于slave同步master
- 10911:10911 # remotingServer服务组件使用,作为对Producer和Consumer提供服务的端口号
- 10912:10912 # HAService服务组件使用,用于Broker的主从同步
environment:
TZ: Asia/Shanghai
NAMESRV_ADDR: "192.168.180.120:9876"
JAVA_HOME: "/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64"
JAVA_OPT_EXT: "-Xms1024m -Xmx1024m -Xmn512m"
volumes:
- /data/rocketmq/broker/logs:/home/rocketmq/logs/
- /data/rocketmq/broker/store:/home/rocketmq/store
- /data/rocketmq/broker/broker.conf:/etc/rocketmq/broker.conf
# 修改参数请在启动前提前配置好
# broker宿主机IP: brokerIP1=192.168.180.120
# 允许自动创建主题: autoCreateTopicEnable=true
# 开启消息轨迹追踪: traceTopicEnable=true
# 快速失败参数调整: waitTimeMillsInSendQueue=1000
command: sh mqbroker -c /etc/rocketmq/broker.conf
# MQ控制面板: apache官方没有维护此镜像,用的第三方镜像
rmqdashboard:
image: apacherocketmq/rocketmq-dashboard:latest
container_name: rmqdashboard
depends_on:
- rmqnamesrv
- rmqbroker
ports:
- 8080:8080
environment:
JAVA_OPTS: "-Drocketmq.namesrv.addr=192.168.180.120:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"