RabbitMQ消息队列设计

👤 Adodo 📦 v1.0.0 ⭐ 4.7 ⬇️ 206 下载
🤖 AI-Agent 免费

📖 技能介绍


name: rabbitmq-design description: 帮助Agent为项目进行RabbitMQ消息模型设计、交换机/队列拓扑设计、消费策略设计,并提供场景化使用指南。当用户需要设计消息队列架构、路由规则、死信策略、高可用方案时触发。 version: 1.0.0 metadata: clawdbot: emoji: "🐰" requires: anyBins: ["rabbitmqctl"] os: ["linux", "darwin"]


RabbitMQ 设计与使用助手

触发条件

7w4.net小葱技能站收录全网优质技能,值得收藏。

当用户出现以下意图时激活本 Skill: - 设计 RabbitMQ 交换机 / 队列 / 绑定 - 消息路由规则设计 - 死信队列 / 延迟队列方案 - 消息可靠性(持久化/ACK/Confirm)设计 - 高可用镜像队列 / 仲裁队列设计 - "如何设计 xxx 的消息模型"

设计流程(Agent 执行路径)

0. 版本检查 → 加载 references/version-major.md 对比用户版本,识别废弃项和重大变更。同时加载所有 version-X.Y.md(X.Y ≤ 用户目标版本),后续设计过程中 Agent 从已加载的上下文中自主匹配深度特性
1. 需求分析 → 理解消息流、可靠性等级、吞吐量、消费者模型
2. 交换机设计 → 类型选择(Direct/Topic/Fanout/Headers)、命名规范
3. 队列设计 → 队列类型(Classic/Quorum/Stream)、持久化、参数
4. 绑定设计 → Routing Key 规范、通配符策略
5. 消费设计 → ACK 策略、Prefetch、并发、死信处理
6. 使用指引 → 加载 references/usage-guide.md,给出场景化操作
7. 生产建议 → 加载 references/best-practices.md,给出集群/高可用/监控建议
8. 模板参考 → 加载 references/patterns.md,匹配业务消息拓扑模板

快速参考

交换机类型速查

类型 路由逻辑 适用场景 示例
Direct Routing Key 精确匹配 单播/定向投递 order.createdorder_queue
Topic Routing Key 通配符匹配(* 单段 / # 多段) 多条件路由/发布订阅 order.*.success
Fanout 忽略 Routing Key,广播到所有绑定队列 广播/扇出 配置刷新通知
Headers 按 Header 属性匹配(x-match: all/any 属性路由 日志级别路由

队列类型速查

类型 可靠性 性能 适用场景 最低版本
Quorum Queue 高(Raft 共识) 订单/支付/金融 3.8+
Classic Queue (CQv2) 中(可配镜像) 通用消息/临时队列;懒加载自动落盘(原 Lazy Queue 行为) 3.12+ 推荐
Stream 高(持久化+重放) 高吞吐 事件溯源/日志/大数据 3.9+

消息可靠性速查

级别 Producer Broker Consumer 丢失风险
最低 不 Confirm 内存/不持久化 Auto ACK
标准 Publisher Confirm Durable 队列 + Persistent 消息 Manual ACK 极低
最高 Publisher Confirm Quorum 队列 Manual ACK + 重试 几乎为零

死信设计核心参数

参数 说明
x-dead-letter-exchange 死信转发的目标交换机
x-dead-letter-routing-key 死信转发的 Routing Key
x-message-ttl 消息 TTL(毫秒),超时转死信
x-max-length / x-max-length-bytes 队列长度/字节上限
x-delivery-limit 重试次数上限(Quorum Queue)

Prefetch 设计

场景 prefetch_count 说明
低延迟 / 消息小 50-100 并发高
高延迟 / 消息大 1-10 公平分发
顺序处理 1 严格有序

渐进式加载

详细内容按需加载 references/:

主题 文件 何时加载
交换机/队列/绑定/消息设计规范 references/design-spec.md Step 2-4 拓扑设计
场景化操作(创建/生产/消费/管理/迁移) references/usage-guide.md Step 6 使用指引
最佳实践(高可用/可靠性/集群/监控/运维) references/best-practices.md Step 7 生产建议
业务消息拓扑模板(5类业务完整设计) references/patterns.md Step 8 模板参考
重大版本特性(废弃/依赖变更/新模块) references/version-major.md Step 0 版本检查(模块激活时即加载)
深度版本特性 — 4.x(AMQP 1.0/Khepri/MQTT 5.0/Stream过滤/延迟重试) references/version-4.0.md Step 0 版本检查时自动加载(版本 ≤ 用户目标版本时)
深度版本特性 — 3.x(CQv2/原生MQTT/Quorum Queue/Stream/OAuth 2) references/version-3.0.md Step 0 版本检查时自动加载(版本 ≤ 用户目标版本时)

版本参考文档启用规则

  1. 模块激活时 — 始终加载 references/version-major.md,Agent 需主动对比用户使用的 RabbitMQ 版本,若存在废弃项或重大变更,立即提示用户
  2. 深度特性 Step 0 自动加载 — 版本检查时加载所有 version-X.Y.md(X.Y ≤ 用户目标版本)。设计过程中 Agent 从已加载的上下文中自主检索匹配相关特性,用户无需指定版本号
  3. 深度特性按大版本拆分,小版本持续追加 — 如 version-4.0.md 包含该大版本下所有小版本的设计级特性。更新时在文件中新增 ## X.Y.Z 版本节即可,不单开文件

硬规则

  1. 设计规范内容来自权威资料(RabbitMQ 官方文档/社区最佳实践),不编造
  2. 消息必须持久化(Durable 队列 + Persistent delivery_mode),除临时队列外
  3. 必须设计死信策略(DLX + DLQ),不可让无法处理的消息无限重试或静默丢弃
  4. 必须启用 Publisher Confirm,关键业务不可仅依赖 Fire-and-Forget
  5. Consumer 必须使用 Manual ACK(auto_ack=false),在业务处理成功后确认
  6. 队列命名格式:<业务域>.<队列用途>[.<子类型>],如 order.created.notification
  7. 生产环境不得使用 Fanout + 大量绑定,用 Topic 交换机替代

🤖 AI 评测

这是一份相当专业的 RabbitMQ 设计助手 Skill,内容覆盖面广,从消息模型设计到集群运维建议都有涉及。文档结构清晰,速查表实用,版本特性更新及时。硬规则设计能帮助避免常见设计陷阱,业务模板也具有一定参考价值。美中不足的是模板数量偏少,部分复杂场景可能找不到直接可用的参考,设计流程的描述稍显机械,灵活性有待加强。整体质量良好,但还有扩展空间。

📊 多维度评分

适应性4.2
规范性4.7
有效性4.9
可靠性4.6
可信度5

📁 包含文件 (8 个)

📄 SKILL.md 6 KB
📄 references/best-practices.md 4.4 KB
📄 references/design-spec.md 5.4 KB
📄 references/patterns.md 4.1 KB
📄 references/usage-guide.md 5.1 KB
📄 references/version-3.0.md 5.5 KB
📄 references/version-4.0.md 6.9 KB
📄 references/version-major.md 4 KB