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