🎯 什麼情境該想到我
當你「想讓多個系統以非同步、可靠、鬆耦合的方式交換資料,且不想因對方暫時離線就失敗」的時候。這是本書其餘所有模式的基礎風格。
⚙️ 怎麼用(步驟 / 公式)
意圖:用訊息系統在應用程式間頻繁、即時、可靠且非同步地傳輸資料封包(訊息)。
做法 / 結構要點:
- 發送方把資料包成訊息,交給訊息系統送到通道上,不必等接收方立即處理。
- 訊息系統負責投遞、緩衝與重試,發送與接收在時間上解耦。
- 因為非同步且有緩衝,能吸收流量尖峰(削峰)、容忍對方暫時離線,也較易擴充。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 非同步帶來複雜度:需處理訊息順序、重複、最終一致性,除錯比同步呼叫困難。
- 若真的需要「呼叫後立即拿到回覆」的即時語意,同步 RPC 反而更直接。
- 引入訊息中介系統本身也需維運成本。
🔗 相關工具
- 遠端程序呼叫 Remote Procedure Invocation(同為整合風格,對照的同步做法)
- 訊息通道 Message Channel(訊息傳遞的基礎:訊息流經的管道)
- 訊息 Message(訊息傳遞的基礎:傳輸的資料封包)
- 企業整合模式