訊息佇列 (Message Queue)

★★★★Studied

FromDDIASystem Design Interview

📚 From the Books

訊息佇列 (Message Queue)ConceptMessaging & Streaming

用佇列把生產者與消費者解耦:生產者只管丟,消費者按自己的步調拉。換來削峰、容錯與非同步。

🧠 Core Ideas

TIP

佇列把「同步呼叫」變成「非同步事件」。代價是最終一致 + 要處理重複與順序。

⚖️ Tradeoffs

投遞語意 — at-least-once vs exactly-once
  • at-most-once:可能掉訊息,簡單。
  • at-least-once:不掉但可能重複 → 消費端要冪等
  • exactly-once:成本高(去重 + 交易),多用「at-least-once + 冪等」逼近。
順序與分區
  • 全域順序難擴展;多用「同 key 進同分區」保證分區內有序
  • 消費者組內每分區只給一個消費者,避免並發亂序。

🔑 Takeaways

✍️ My Notes

No notes yet — jot your takeaways or Q&A here.

📖 Further Reading