rocketmq容器化部署说明
注:此文档rocketmq容器化部署方式
镜像名称
镜像名称 | tag | 备注 |
---|---|---|
chtsen/rocketmq | 5.1.3_uuid | dockerhub |
端口说明
应用 | 端口 | 说明 |
---|---|---|
namesrv | 9876 | |
broker | 10909、10911、10912 | |
console | 1666 |
环境变量
注:红色标记为必填变量
环境变量 | 说明 | 默认值 |
---|---|---|
NAMESRV_SVC | namesrv路由服务,单机配置:192.168.100.100:9876 多机配置(以分号分割):192.168.100.100:9876;192.168.100.101:9876 | yozo-rocketmq-namesrv:9876 |
BROKER_TYPE | broker服务:单机配置:broker 多机配置:borker分为4个部分:broker-a、broker-a-s、broker-b、broker-b-s | broker |
BROKER_IP | broker自身部署所在的ip或者svc | yozo-rocketmq-broker |
挂载说明
目录及文件 | 容器内目录 | 说明 | 是否需要挂载 |
---|---|---|---|
数据目录 | /data/rocketmq/store | Broker持久化目录 | 需要持久化数据时必须挂载 |
单机部署
服务配置
Docker-compose配置说明
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
启动服务
注:docker-compose命令必须在对应的部署目录下如/rocketmq下执行
# 创建容器并后台运行
docker-compose up -d
双主双从异步部署
注:rocketmq高可用最低需要4台服务器。
服务器规划
节点 | 应用 | 说明 |
---|---|---|
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 |
服务配置
Docker-compose配置说明
服务器(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
服务器(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
服务器(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
服务器(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
启动服务
注:docker-compose命令必须在对应的部署目录下如/rocketmq下执行
# 进入对接机器,创建容器并后台运行
docker-compose up -d
注意事项
- 镜像内使用非root用户,用户uid/gid为1099,如有需要启动时添加user参数,并保证所有映射的磁盘目录皆为1099用户/组权限