🎯 什麼情境該想到我
當你「訊息亂序到達,需要依序號重排回正確順序再往下送」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:把一串亂序到達的相關訊息,依序號重新排成正確順序後輸出。
做法要點(重排序器是有狀態元件):
- 依每則訊息的序號(sequence number)暫存收到的訊息。
- 一旦湊到連續的順序,就依序放出。
- 只調整順序、不改動訊息內容。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 需緩存並追蹤序號,可能因缺號而卡住,須設緩衝上限或逾時。
- 與聚合器都有狀態,但重排序器輸出多則(只是排序),不合併成一則。
- 訊息本來就有序時不需要。
🔗 相關工具
- 聚合器 Aggregator(同為有狀態,但目的是合併而非排序)
- 分割器 Splitter(拆出的子訊息若亂序,可用重排序器排回)
- 訊息序列 Message Sequence(依序列的序號重排)
- 企業整合模式