キューから特定のログを消費し、サードパーティのシステムが正しく応答しない場合に備えて、そのログからいくつかのサードパーティAPIを取得して使用するケースがあります。再試行を実装したいその特定のログのロジック。カフカコンシューマのロジックを再試行する
時間フィールドを追加して同じキューにメッセージを再表示することができます。このメッセージは、その時間フィールドが有効な場合、つまり現在の時間よりも短い場合に再び消費され、それ以外の場合は再びキューにプッシュされます。
しかし、このロジックは、再試行時間が正しく、キューが不必要に大きくなるまで同じログを繰り返し追加します。
カフカでリトライロジックを実装する方が良いですか?
メッセージNを送信するときにサードパーティのAPIが応答しない場合は、メッセージN + 1、N + 2などで続行し、後でメッセージNに戻るのは意味がありますか?もしそうでなければ、再試行でカフカの助けになる点はないようです。ちょうどあなたの消費者に数秒、数分、時間を戻して、メッセージNをもう一度押してください。 – Harald
はい私は最初に私はいくつかの似たようなアプローチを考えました。ここでは、失敗した場合の透過的オフセットに消費者を求めます。しかし、消費者がN時間単位でメッセージを消費するのを制限する方法/方法はありますか? – TECH007