docs(deploy): 澄清 RabbitMQ 版本与配置边界

This commit is contained in:
2026-07-16 12:20:28 +08:00
parent 13048672a9
commit 20861e6814
2 changed files with 31 additions and 6 deletions
+17 -2
View File
@@ -1,6 +1,6 @@
# RabbitMQ 自建生产集群
本目录用于在客户自己的 Kubernetes 集群中部署 RabbitMQ,不依赖云厂商消息队列服务。模板使用 RabbitMQ 官方 Cluster Operator 管理三节点集群。
本目录用于在客户自己的 Kubernetes 集群中部署 RabbitMQ,不依赖云厂商消息队列服务。模板使用 RabbitMQ 官方 Cluster Operator 管理三节点集群。客户已经提供可用 RabbitMQ 时,不需要部署本目录中的资源。
该组件独立于 EasyAI 主应用的 production overlay,需先部署 RabbitMQ,再把 Operator 生成的连接凭据写入 EasyAI 配置。
@@ -13,6 +13,18 @@
- 新建的普通持久化业务队列默认使用 quorum queue
- Operator 负责 StatefulSet、内部 Service、节点发现和滚动更新,模板额外提供 `maxUnavailable: 1` 的 PodDisruptionBudget。
## 版本与配置边界
- `rabbitmq:4.3.2-management` 是本模板的默认镜像,不是 EasyAI 应用的硬性最低版本;
- EasyAI 使用标准 AMQP `0-9-1` 能力,不依赖 RabbitMQ `4.3` 专属功能;
- 已有 RabbitMQ `3.13.7` 及以上环境可以直接复用,但上线前必须验证队列声明、消息发布和消费、断线重连及故障切换;低于 `3.13.7` 的版本不在当前交付兼容范围内;
- RabbitMQ `3.13.x` 已停止社区支持,新建生产环境应选择官方当前处于支持期的版本;
- RabbitMQ 服务端参数位于 `rabbitmq-cluster.yaml``spec.rabbitmq.additionalConfig`,由 Cluster Operator 管理,因此本模板不需要单独的 RabbitMQ ConfigMap。
RabbitMQ 版本生命周期参考:
<https://www.rabbitmq.com/release-information>
## 前提条件
- Kubernetes 集群至少有 3 个可调度 Worker 节点;
@@ -40,7 +52,8 @@ kubectl -n rabbitmq-system rollout status deploy/rabbitmq-cluster-operator --tim
1.`CHANGE_ME_RABBITMQ_STORAGE_CLASS` 替换为客户的 RWO StorageClass
2. 根据消息量调整每个节点的 `storage`、CPU 和内存;
3. 无法访问 Docker Hub 时,将 `image` 替换为客户私有仓库中的同版本镜像;
4. 如果 Worker 节点不足 3 个,先扩容节点,不要删除主机级反亲和规则后直接用于生产。
4. 确需修改默认 RabbitMQ 版本时,先核对官方支持周期,并在预发布环境完成兼容验证;已有数据的集群不得直接跨版本替换镜像;
5. 如果 Worker 节点不足 3 个,先扩容节点,不要删除主机级反亲和规则后直接用于生产。
检查占位符并渲染:
@@ -72,6 +85,8 @@ kubectl -n easyai get pod,svc,pvc,pdb \
## 配置 EasyAI
EasyAI 的非敏感连接参数保存在应用 ConfigMap 中,用户名和密码保存在应用 Secret 中。RabbitMQ 服务端配置由 `RabbitmqCluster` 资源管理,不需要另外创建 RabbitMQ ConfigMap。
Operator 会生成 `easyai-rabbitmq-default-user` Secret。初次连通性验证时可读取该 Secret 中的用户名和密码:
```bash