name: rabbitmq-design description: 帮助Agent为项目进行RabbitMQ消息模型设计、交换机/队列拓扑设计、消费策略设计,并提供场景化使用指南。当用户需要设计消息队列架构、路由规则、死信策略、高可用方案时触发。 version: 1.0.0 metadata: clawdbot: emoji: "🐰" requires: anyBins: ["rabbitmqctl"] os: ["linux", "darwin"]
当用户出现以下意图时激活本 Skill: - 设计 RabbitMQ 交换机 / 队列 / 绑定 - 消息路由规则设计 - 死信队列 / 延迟队列方案 - 消息可靠性(持久化/ACK/Confirm)设计 - 高可用镜像队列 / 仲裁队列设计 - "如何设计 xxx 的消息模型"
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.created → order_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_count |
说明 |
|---|---|---|
| 低延迟 / 消息小 | 50-100 |
并发高 |
| 高延迟 / 消息大 | 1-10 |
公平分发 |
| 顺序处理 | 1 |
严格有序 |
发现更多技能插件,请访问7w4.net。
详细内容按需加载 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 版本检查时自动加载(版本 ≤ 用户目标版本时) |
references/version-major.md,Agent 需主动对比用户使用的 RabbitMQ 版本,若存在废弃项或重大变更,立即提示用户version-4.0.md 包含该大版本下所有小版本的设计级特性。更新时在文件中新增 ## X.Y.Z 版本节即可,不单开文件auto_ack=false),在业务处理成功后确认<业务域>.<队列用途>[.<子类型>],如 order.created.notification这是一份相当专业的 RabbitMQ 设计助手 Skill,内容覆盖面广,从消息模型设计到集群运维建议都有涉及。文档结构清晰,速查表实用,版本特性更新及时。硬规则设计能帮助避免常见设计陷阱,业务模板也具有一定参考价值。美中不足的是模板数量偏少,部分复杂场景可能找不到直接可用的参考,设计流程的描述稍显机械,灵活性有待加强。整体质量良好,但还有扩展空间。