我正在處理從現場設備接收消息的情況。這些消息已加上序列號,我需要按原始順序處理這些消息。消息很少會丟失,但並非不可能,所以我需要一個機制來處理它。訂單非常重要時缺少消息
我的實現建立在NServiceBus上,我正在利用「HandleCurrentMessageLater」功能將消息彈出到隊列後面,以防消息被亂序接收。
如果我最終收到序列中的下一條消息,那麼我可以處理積壓,這很有效。
在這種情況下,我有什麼選擇來處理丟失的消息?我的第一反應是實現某種老化算法,在一定數量的失敗嘗試或類似事件之後會增加序列號,但是必須這樣做的複雜性有點過分。
有沒有人遇到類似的問題,願意分享他們如何解決它?
感謝
如果一條消息丟失,您是否希望所有後續消息最終失敗? –
我需要接受這個消息已經在某個時候丟失了,並且處理了我所擁有的數據。我們正在處理跟蹤信息,所以我們需要在所有情況下限制數據丟失。 –