現場のデバイスからメッセージを受信する状況に対処しています。これらのメッセージにはシーケンス番号がスタンプされており、これらのメッセージを元の順序で処理する必要があります。メッセージが失われることはめったにありませんが、不可能ではないので、それに対処するためのメカニズムが必要です。
私の実装はNServiceBusに基づいて構築されており、「HandleCurrentMessageLater」機能を使用して、メッセージが順不同で受信された場合にメッセージをキューの後ろにポップします。
これは、バックログを処理できるように、最終的にシーケンス内の次のメッセージを受信する場合にうまく機能します。
この場合、欠落しているメッセージに対処するためにどのようなオプションが必要ですか?私の最初の反応は、ある種のエージングアルゴリズムを実装することです。これは、設定された回数の試行の失敗などの後にシーケンス番号を増やすものですが、これを実行する必要があることの複雑さは少々圧倒的です。
誰かが同様の問題に直面し、彼らがそれをどのように解決したかを喜んで共有したことがありますか?
ありがとう