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 設計與使用助手

觸發條件

當用戶出現以下意圖時啟用本 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),在業務處理成功後確認

    小蔥技能站7w4.net發現了升級外掛。

  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