Quantcast
Channel: 小蓝博客
Viewing all articles
Browse latest Browse all 3155

Docker部署RocketMQ5.2.0集群

$
0
0

Docker部署RocketMQ 5.2.0集群

Apache RocketMQ 是一款分布式消息中间件,广泛应用于高并发和高可靠性场景中。本文将详细介绍如何使用Docker部署RocketMQ 5.2.0集群。

一、环境准备

在开始之前,确保已在系统中安装了Docker和Docker Compose。

  1. 安装Docker:

  2. 安装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,提高消息中间件的部署和管理效率。


Viewing all articles
Browse latest Browse all 3155

Latest Images

Trending Articles