Docker部署RocketMQ 5.2.0集群
Apache RocketMQ 是一款分布式消息中间件,广泛应用于高并发和高可靠性场景中。本文将详细介绍如何使用Docker部署RocketMQ 5.2.0集群。
一、环境准备
在开始之前,确保已在系统中安装了Docker和Docker Compose。
二、Docker部署RocketMQ
2.1 创建Docker Compose配置文件
在工作目录下创建 docker-compose.yml
文件,并添加以下内容:
version: '3.8'
services:
namesrv:
image: apache/rocketmq:5.2.0
container_name: rmqnamesrv
ports:
- "9876:9876"
volumes:
- ./data/logs:/home/rocketmq/logs
- ./data/store:/home/rocketmq/store
command: sh mqnamesrv
healthcheck:
test: ["CMD", "nc", "-z", "localhost", "9876"]
interval: 30s
timeout: 10s
retries: 3
broker:
image: apache/rocketmq:5.2.0
container_name: rmqbroker
ports:
- "10911:10911"
- "10909:10909"
volumes:
- ./data/logs:/home/rocketmq/logs
- ./data/store:/home/rocketmq/store
- ./conf/broker.conf:/home/rocketmq/rocketmq-5.2.0/conf/broker.conf
environment:
- "JAVA_OPT_EXT=-server -Xms512m -Xmx512m -Xmn128m"
- "JAVA_OPT=-Duser.home=/home/rocketmq"
depends_on:
- namesrv
command: sh mqbroker -c /home/rocketmq/rocketmq-5.2.0/conf/broker.conf
healthcheck:
test: ["CMD", "nc", "-z", "localhost", "10911"]
interval: 30s
timeout: 10s
retries: 3
2.2 创建Broker配置文件
在工作目录下创建 conf
目录,并在其中创建 broker.conf
文件,添加以下内容:
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
namesrvAddr=rmqnamesrv:9876
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
2.3 启动RocketMQ集群
在工作目录下执行以下命令,启动RocketMQ集群:
docker-compose up -d
2.4 验证RocketMQ集群
使用以下命令查看容器状态,确保所有容器都正常启动:
docker-compose ps
输出示例:
Name Command State Ports
-------------------------------------------------------------------------------------------------------
rmqbroker sh mqbroker -c /home/rocketm ... Up 10909/tcp, 0.0.0.0:10911->10911/tcp
rmqnamesrv sh mqnamesrv Up 0.0.0.0:9876->9876/tcp
2.5 访问RocketMQ控制台(可选)
为了方便管理和监控RocketMQ集群,可以部署RocketMQ控制台。创建一个新的 docker-compose
服务:
services:
mqadmin:
image: pangliang/rocketmq-console-ng
container_name: mqadmin
ports:
- "8080:8080"
environment:
JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
depends_on:
- namesrv
- broker
在 docker-compose.yml
文件中添加上述配置并执行:
docker-compose up -d mqadmin
然后可以通过浏览器访问 http://localhost:8080
来访问RocketMQ控制台。
三、总结
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。