docker+rocketmq 5.1.3 stand-alone and 2m-2s asynchronous cluster deployment

rocketmq container deployment instructions

Note: This document rocketmq containerized deployment method

Image name

Image name tag Remarks
chtsen/rocketmq 5.1.3_uuid dockerhub

Port description

Application Port Description
namesrv 9876
broker 10909, 10911, 10912
console 1666

Environment variables

Note: The variables marked in red are required

Environment variables Description Default value
NAMESRV_SVC namesrv routing service, single-machine configuration: 192.168.100.100:9876 Multi-machine configuration (separated by semicolon): 192.168.100.100:9876;192.168.100.101:9876 yozo-rocketmq-namesrv:9876
BROKER_TYPE broker service: Single machine configuration: broker Multi-machine configuration: broker is divided into 4 parts: broker-a , broker-a-s, broker-b, broker-b-s broker
BROKER_IP IP or svc where the broker itself is deployed yozo-rocketmq-broker

Mount instructions

Directories and files Directory in the container Description Whether it needs to be mounted
Data directory /data/rocketmq/store Broker persistence directory Requires persistence Must be mounted when converting data

Single-machine deployment

Service configuration

Docker-compose configuration instructions

version: '3'
services:
  rocketmq-namesrv:
    image: chtsen/rocketmq:5.1.3_uuid
    container_name: yozo-rocketmq-namesrv
    restart: always
    user: '1099:1099'
    dns_search: .
    ports:
      - 9876:9876
    command: sh /opt/yozo/rocketmq/bin/mqnamesrv
  rocketmq-broker:
    image: chtsen/rocketmq:5.1.3_uuid
    container_name: yozo-rocketmq-broker
    restart: always
    user: '1099:1099'
    dns_search: .
    ports:
      - 10911:10911
      - 10912:10912
      - 10909:10909
    environment:
      - NAMESRV_SVC=yozo-rocketmq-namesrv:9876
      - NAMESRV_TYPE=broker
      - BROKER_IP=yozo-rocketmq-broker
    volumes:
      - ./data:/data/rocketmq/store
  rocketmq-console:
    image: chtsen/rocketmq:5.1.3_uuid
    container_name: yozo-rocketmq-console
    restart: always
    user: '1099:1099'
    dns_search: .
    ports:
     - 1666:1666
    command: /opt/yozo/bin/wait-for-it.sh yozo-rocketmq-broker:10909 -- java -jar rocketmq-console.jar --server.port=1666 --rocketmq.config.namesrvAddrs=yozo- rocketmq-namesrv:9876
networks:
  default:
    external: true
    name: chtsen
Start service

Note: the docker-compose command must be executed in the corresponding deployment directory such as /rocketmq

# Create a container and run it in the background
docker-compose up -d

Dual-master and dual-slave asynchronous deployment

Note: rocketmq high availability requires a minimum of 4 servers.

Server planning
Node Application Description
192.168.80.11 broker-a
192.168.80.12 namesrv, broker-a-s
192.168.80.13 broker-b
192.168.80.14 namesrv, broker-b-s, console
Service configuration

Docker-compose configuration instructions

Server (192.168.80.11):
version: '3'
services:
  rocketmq-broker-a:
    image: chtsen/rocketmq:5.1.3_uuid
    container_name: yozo-rocketmq-broker
    restart: always
    user: '1099:1099'
    dns_search: .
    ports:
      - 10911:10911
      - 10912:10912
      - 10909:10909
    environment:
      - NAMESRV_SVC=192.168.80.12:9876;192.168.80.14:9876
      - NAMESRV_TYPE=broker-a
      - BROKER_IP=192.168.80.11
    volumes:
      - ./data:/data/rocketmq/store
# rocketmq-console:
# image: chtsen/rocketmq:5.1.3_uuid
# container_name: yozo-rocketmq-console
# restart: always
# user: '1099:1099'
# dns_search: .
# ports:
# - 1666:1666
# command: /opt/yozo/bin/wait-for-it.sh yozo-rocketmq-broker:10909 -- java -jar rocketmq-console.jar --server.port=1666 --rocketmq.config.namesrvAddrs=yozo -rocketmq-namesrv:9876
networks:
  default:
    external: true
    name: chtsen
Server (192.168.80.12):
version: '3'
services:
 rocketmq-namesrv:
   image: chtsen/rocketmq:5.1.3_uuid
   container_name: yozo-rocketmq-namesrv
   restart: always
   user: '1099:1099'
   dns_search: .
   ports:
     - 9876:9876
   command: sh /opt/yozo/rocketmq/bin/mqnamesrv
  rocketmq-broker-a-s:
    image: chtsen/rocketmq:5.1.3_uuid
    container_name: yozo-rocketmq-broker-a-s
    restart: always
    user: '1099:1099'
    dns_search: .
    ports:
      - 10911:10911
      - 10912:10912
      - 10909:10909
    environment:
      - NAMESRV_SVC=192.168.80.12:9876;192.168.80.14:9876
      - NAMESRV_TYPE=broker-a-s
      - BROKER_IP=192.168.80.12
    volumes:
      - ./data:/data/rocketmq/store
# rocketmq-console:
# image: chtsen/rocketmq:5.1.3_uuid
# container_name: yozo-rocketmq-console
# restart: always
# user: '1099:1099'
# dns_search: .
# ports:
# - 1666:1666
# command: /opt/yozo/bin/wait-for-it.sh yozo-rocketmq-broker:10909 -- java -jar rocketmq-console.jar --server.port=1666 --rocketmq.config.namesrvAddrs=yozo -rocketmq-namesrv:9876
networks:
  default:
    external: true
    name: chtsen
Server (192.168.80.13):
version: '3'
services:
  rocketmq-broker-b:
    image: chtsen/rocketmq:5.1.3_uuid
    container_name: yozo-rocketmq-broker
    restart: always
    user: '1099:1099'
    dns_search: .
    ports:
      - 10911:10911
      - 10912:10912
      - 10909:10909
    environment:
      - NAMESRV_SVC=192.168.80.12:9876;192.168.80.14:9876
      - NAMESRV_TYPE=broker-b
      - BROKER_IP=192.168.80.13
    volumes:
      - ./data:/data/rocketmq/store
# rocketmq-console:
# image: chtsen/rocketmq:5.1.3_uuid
# container_name: yozo-rocketmq-console
# restart: always
# user: '1099:1099'
# dns_search: .
# ports:
# - 1666:1666
# command: /opt/yozo/bin/wait-for-it.sh yozo-rocketmq-broker:10909 -- java -jar rocketmq-console.jar --server.port=1666 --rocketmq.config.namesrvAddrs=yozo -rocketmq-namesrv:9876
networks:
  default:
    external: true
    name: chtsen
Server (192.168.80.14):
version: '3'
services:
 rocketmq-namesrv:
   image: chtsen/rocketmq:5.1.3_uuid
   container_name: yozo-rocketmq-namesrv
   restart: always
   user: '1099:1099'
   dns_search: .
   ports:
     - 9876:9876
   command: sh /opt/yozo/rocketmq/bin/mqnamesrv
  rocketmq-broker-b-s:
    image: chtsen/rocketmq:5.1.3_uuid
    container_name: yozo-rocketmq-broker-b-s
    restart: always
    user: '1099:1099'
    dns_search: .
    ports:
      - 10911:10911
      - 10912:10912
      - 10909:10909
    environment:
      - NAMESRV_SVC=192.168.80.12:9876;192.168.80.14:9876
      - NAMESRV_TYPE=broker-b-s
      - BROKER_IP=192.168.80.12
    volumes:
      - ./data:/data/rocketmq/store
  rocketmq-console:
    image: chtsen/rocketmq:5.1.3_uuid
    container_name: yozo-rocketmq-console
    restart: always
    user: '1099:1099'
    dns_search: .
    ports:
     - 1666:1666
    command: /opt/yozo/bin/wait-for-it.sh yozo-rocketmq-broker-b-s:10909 -- java -jar rocketmq-console.jar --server.port=1666 --rocketmq.config.namesrvAddrs= 192.168.80.13:9876
networks:
  default:
    external: true
    name: chtsen
Start service

Note: the docker-compose command must be executed in the corresponding deployment directory such as /rocketmq

# Enter the docking machine, create a container and run it in the background
docker-compose up -d

Notes

  • Use a non-root user in the image, and the user uid/gid is 1099. If necessary, add the user parameter when starting, and ensure that all mapped disk directories have 1099 user/group permissions