使用docker-compose优雅部署RocketMQ
随着市场的发展,越来越多的复杂场景出现在我们日常的开发工作中。
随之也越来越多的好的工具,也同步出现在程序员的学习范围清单内。
好的工具提高产品性能的同时,也带来了很多安装上的问题,docker-compose就应运而生
最近一系列文章,希望能为大家提供一些便捷的安装方式
yaml
version: '3.5'
services:
rmqnamesrv:
image: rocketmqinc/rocketmq
container_name: rmqnamesrv
restart: always
ports:
- 9876:9876
environment:
#内存分配
JAVA_OPT_EXT: "-server -Xms1g -Xmx1g"
# 日志和配置文件挂载到主机上,避免重启后丢失
volumes:
- /data/rocketmq/namesrv/logs:/root/logs
command: sh mqnamesrv
rmqbroker:
image: rocketmqinc/rocketmq
container_name: rmqbroker
restart: always
depends_on:
- rmqnamesrv
ports:
- 10909:10909
- 10911:10911
# 日志和配置文件挂载到主机上,避免重启后丢失
volumes:
- /data/rocketmq/broker1/logs:/root/logs
- /data/rocketmq/broker1/store:/root/store
- /data/rocketmq/broker1/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf
command: sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
environment:
NAMESRV_ADDR: "rmqnamesrv:9876"
JAVA_OPT_EXT: "-server -Xms1g -Xmx1g -Xmn1g"
# rocket-mq的ui页面,方便监控和维护
rmqconsole:
image: styletang/rocketmq-console-ng
container_name: rocketmq-console
restart: always
ports:
- 19876:8080
depends_on:
- rmqnamesrv
# 时区和日志问题
volumes:
- /etc/localtime:/etc/localtime:ro
- /data/rocketmq/console/logs:/root/logs
environment:
JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
# 用于多个应用限制在同一网络内,避免出现容器化部署后的网络问题
networks:
default:
external:
name: nacos_default
部署完成后,即可看到rocket-mq相关的三个应用都正常启动在portainer-ce中
至此,恭喜你可以开始实践应用RocketMQ咯~