🎯 什麼情境該想到我
當你「有一個一般的服務(普通方法),想把它接到訊息通道,讓它既能被訊息觸發、也能照常被程式直接呼叫」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:在訊息通道與一個服務之間搭一座橋,把到達的訊息轉成對服務的呼叫,使服務可被訊息驅動,同時仍能支援非訊息(直接)呼叫。
做法 / 結構要點:
- Service Activator 監聽通道、收訊息。
- 把訊息內容解析成服務方法的參數並呼叫服務。
- 若需回覆,把服務結果包成訊息送回。服務本身不需知道自己被訊息呼叫。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 服務要能同時服務訊息與非訊息呼叫,本體須維持與傳輸無關。
- 錯誤 / 回覆處理要在 Activator 一層做好。
- 常與訊息閘道對稱:一個負責送出、一個負責接入觸發。
🔗 相關工具
- 訊息閘道 Messaging Gateway(同家族,送出端的對稱角色)
- 事件驅動消費者 Event-Driven Consumer(同家族,可用來觸發服務)
- 企業整合模式