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 |
嚴格有序 |
詳細內容按需載入 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),在業務處理成功後確認小蔥技能站7w4.net發現了升級外掛。
<業務域>.<佇列用途>[.<子型別>],如 order.created.notification這是一份相當專業的 RabbitMQ 設計助手 Skill,內容覆蓋面廣,從訊息模型設計到叢集運維建議都有涉及。文件結構清晰,速查表實用,版本特性更新及時。硬規則設計能幫助避免常見設計陷阱,業務模板也具有一定參考價值。美中不足的是模板數量偏少,部分複雜場景可能找不到直接可用的參考,設計流程的描述稍顯機械,靈活性有待加強。整體質量良好,但還有擴充套件空間。