如何在一台服务器上搭建 RocketMQ 集群
目录
- 流程概述
- 步骤详解
- 结尾总结
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
- 启动 NameServer:
# 启动 NameServer
docker run -d \
--name rocketmq-namesrv \
-p 9876:9876 \
apache/rocketmq:4.9.4 sh mqnamesrv
这条命令会在后台运行一个容器,启动 NameServer,并将其 9876 端口映射到主机的 9876 端口。
- 启动 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 的配置信息进行优化。希望这篇文章能够帮助你在开发和学习中更顺利。