如何在一台服务器上搭建 RocketMQ 集群

目录

  1. 流程概述
  2. 步骤详解
  3. 结尾总结

1. 流程概述

搭建 RocketMQ 集群的基本流程如下表所示:

步骤 说明
步骤 1 安装 Docker
步骤 2 拉取 RocketMQ 镜像
步骤 3 启动 NameServer 和 Broker
步骤 4 配置 RocketMQ 集群
步骤 5 验证集群的健康状态

2. 步骤详解

步骤 1:安装 Docker

首先,确保你已经在服务器上安装了 Docker。可以通过以下命令检查 Docker 是否安装:

docker -v

如果未安装,请根据操作系统类型安装 Docker。

Ubuntu 安装 Docker 示例
# 更新包管理器
sudo apt-get update
# 安装依赖
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
# 添加 Docker 的 GPG 密钥
curl -fsSL  | sudo apt-key add -
# 添加 Docker 的 APT 源
sudo add-apt-repository \
   "deb [arch=amd64]  \
   $(lsb_release -cs) \
   stable"
# 更新包管理器
sudo apt-get update
# 安装 Docker
sudo apt-get install -y docker-ce

步骤 2:拉取 RocketMQ 镜像

接下来,我们需要拉取 RocketMQ 的 Docker 镜像。在终端中运行以下命令:

# 拉取 RocketMQ 镜像
docker pull apache/rocketmq:4.9.4

这条命令会从 Docker Hub 拉取 RocketMQ 的 4.9.4 版本镜像。

步骤 3:启动 NameServer 和 Broker

  1. 启动 NameServer:
# 启动 NameServer
docker run -d \
    --name rocketmq-namesrv \
    -p 9876:9876 \
    apache/rocketmq:4.9.4 sh mqnamesrv

这条命令会在后台运行一个容器,启动 NameServer,并将其 9876 端口映射到主机的 9876 端口。

  1. 启动 Broker:
# 启动 Broker
docker run -d \
    --name rocketmq-broker \
    -p 10911:10911 \
    -e "NAMESRV_ADDR=rocketmq-namesrv:9876" \
    apache/rocketmq:4.9.4 sh broker

这里,我们启动了一个 Broker 并设置了连接的 NameServer 地址。

步骤 4:配置 RocketMQ 集群

创建一个新的文件来配置集群。我们将使用 Docker Compose 来管理多个服务。

version: '2'
services:
  namesrv:
    image: apache/rocketmq:4.9.4
    ports:
      - "9876:9876"
    command: sh mqnamesrv
  broker:
    image: apache/rocketmq:4.9.4
    ports:
      - "10911:10911"
    environment:
      NAMESRV_ADDR: namesrv:9876
    command: sh mqbroker -n namesrv:9876

保存为 docker-compose.yml,然后使用以下命令启动集群:

# 启动 Docker Compose
docker-compose up -d

步骤 5:验证集群的健康状态

可以通过以下命令检查 RocketMQ 的状态:

# 进入 RocketMQ container
docker exec -it rocketmq-broker bash
# 使用 mqadmin 验证状态
sh mqadmin clusterList -n namesrv:9876

如果安装成功,你将看到集群的 Broker 列表。

3. 流程图与序列图

流程图

journey
  title RocketMQ 集群搭建过程
  section 安装环境
    安装 Docker: 5: 客户端
  section 拉取镜像
    拉取 RocketMQ 镜像: 5: 客户端
  section 启动服务
    启动 NameServer: 5: 服务器
    启动 Broker: 5: 服务器
  section 配置集群
    使用 Docker Compose 管理: 5: 客户端
  section 验证状态
    查看 Cluster 状态: 5: 客户端

序列图

sequenceDiagram
    participant User as 用户
    participant Docker as Docker
    participant RocketMQ as RocketMQ

    User->>Docker: 拉取 RocketMQ 镜像
    Docker-->>User: 镜像下载完成
    User->>RocketMQ: 启动 NameServer
    RocketMQ-->>User: NameServer 启动成功
    User->>RocketMQ: 启动 Broker
    RocketMQ-->>User: Broker 启动成功

结尾总结

通过上述步骤,我们成功地在一台服务器上搭建了 RocketMQ 集群。掌握这些基本的 Docker 操作后,你可以轻松地创建和管理消息队列服务。为确保你的消息队列系统安全稳定,建议不断更新你的 Docker 镜像并监测服务运行状态。在实际应用中,可以根据需求扩展更多的 Broker 实例,以及对 RocketMQ 的配置信息进行优化。希望这篇文章能够帮助你在开发和学习中更顺利。