rocketmq-docker icon indicating copy to clipboard operation
rocketmq-docker copied to clipboard

Use docker to run the stand-alone version of the report 253

Open ConanEdogawa1 opened this issue 2 years ago • 1 comments

089fbec3e3e0 rocketmqinc/rocketmq:4.4.0 "sh mqbroker -c /o..." 30 minutes ago Exited (253) 3 second ago

ConanEdogawa1 avatar Jan 21 '22 14:01 ConanEdogawa1

容器内部用的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"

hepengju avatar Oct 20 '22 05:10 hepengju