🎯 什麼情境該想到我
當你「只想接收通道中符合特定條件的訊息,其餘留在通道給別人處理」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:讓消費者指定一組選擇條件(selector),只接收符合條件的訊息,不符合的留在通道。
做法 / 結構要點:
- 消費者宣告選擇條件(通常對訊息標頭 / 屬性做判斷)。
- 訊息系統只把符合條件的訊息投遞給它。
- 不符合的訊息留給其他消費者或稍後處理。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 選擇通常只能對標頭 / 屬性做,不宜對大 body 內容做(效能)。
- 條件互斥要設計好,否則某些訊息可能沒人收(卡在通道)。
- 是在消費端過濾;也可改在來源端用不同通道分流。
🔗 相關工具
- 訊息分派器 Message Dispatcher(同家族,改由單一消費者集中分派)
- 競爭消費者 Competing Consumers(同家族,另一種多消費者分工方式)
- 企業整合模式