集群、队列类型与运维
队列类型
| 类型 | 数据复制 | 适用场景 |
|---|---|---|
| Classic Queue | 默认不复制 | 普通工作队列、可接受节点级队列不可用 |
| Quorum Queue | 基于 Raft,多副本多数派 | 需要数据安全和节点故障恢复的核心业务 |
| Stream | 追加日志、按 Offset 重读 | 大吞吐、保留历史、多个订阅者重放 |
Classic Mirrored Queue 属于旧 3.x 机制,已从 4.x 移除。Quorum Queue 不是无差别替换,功能、性能、属性和运维方式都需要验证。
集群边界
集群共享用户、Virtual Host、Exchange、Binding 等元数据,但 Queue 内容是否复制取决于队列类型。Quorum Queue 通常使用奇数副本,三副本可容忍一个副本故障;失去多数派时会停止可用。
Federation 与 Shovel
| 能力 | 工作方式 | 适用场景 |
|---|---|---|
| Federation | 下游按需从上游订阅 | 跨 WAN 松耦合联合 |
| Shovel | 显式消费一端并发布到另一端 | 点到点迁移和跨集群搬运 |
两者都不是同步共识复制。跨地域多活必须定义延迟、重复、顺序和冲突处理。
流控与监控
Memory/Disk Alarm 会限制发布;Queue Length Limit 控制积压;Prefetch 控制未确认消息。重点监控 Ready、Unacked、Publish/Deliver/Ack、Redelivery、Consumer Utilisation、Quorum 副本、内存、磁盘、文件描述符和连接 churn。
| 现象 | 优先检查 |
|---|---|
| Publisher 被阻塞 | Memory/Disk Alarm、Blocked 通知 |
| Ready 持续增加 | Consumer 速度、路由和下游依赖 |
| Unacked 持续增加 | Prefetch、慢 Consumer、Ack 路径 |
| Quorum Queue 不可用 | 在线副本是否达到多数、Leader 与网络 |