🎯 什麼情境該想到我
當你「單一消費者處理不過來,想在同一個通道掛多個消費者一起搶訊息、並行處理以提高吞吐」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:在同一個點對點通道上設多個消費者一起接收,訊息系統確保每則訊息只交給其中一個,藉並行提高整體吞吐。
做法 / 結構要點:
- 在同一通道建立多個消費者實例(可跨執行緒 / 程序 / 機器)。
- 通道把每則訊息派給空閒的其中一個消費者,彼此競爭。
- 增減消費者數量即可水平調整處理能力。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 訊息處理順序不再保證(並行導致亂序)。
- 需搭配交易式用戶端 / 冪等接收者處理失敗與重複。
- 只適用點對點通道;發佈訂閱是每個訂閱者都收。
🔗 相關工具
- 訊息分派器 Message Dispatcher(同家族,改由單消費者集中分派)
- 輪詢式消費者 Polling Consumer(同家族,可做為競爭的消費方式)
- 事件驅動消費者 Event-Driven Consumer(同家族,可做為競爭的消費方式)
- 企業整合模式