2013-07-31 2 views
6

メッセージが消費されたり処理されたら、カフカから謝辞を得る方法馬鹿に聞こえるかもしれませんが、ackが受信されたそのメッセージの開始と終了オフセットを知る方法はありますか?私はこれまでのところ0.8で、彼らが読んでoffsetから選択するには、次の方法を導入しているされた何カフカから謝辞を受け取る方法

答えて

1

カフカが本当にこれを行うように構成されていない確認応答部分がわかりません。理由を理解するには、設計文書hereを参照してください。

正確に一度の肯定応答を提供するには、トランザクションIDだけを明示的に書き込んでロックを実装するアプリケーション用の外部追跡システムを作成する必要があります。このようなシステムを実装するための計算コストは​​非常に高く、大きなトランザクションシステムが比較的エキゾチックなハードウェアを必要とし、カフカなどのシステムよりスケーラビリティが低いと主な理由の1つです。

強力な耐久性のセマンティクスを必要としない場合は、グループAPIを使用して、最後のメッセージがいつ読み込まれたかを大まかに把握できます。これにより、すべてのメッセージを少なくとも1回は確実に読み取ることができます。グループAPIはアプリケーション固有の処理ロジックを明示的に追跡する機能を提供しないため、実際の処理保証はこのシナリオではかなり弱いことに注意してください。冪等元処理に依存するスキームは、この環境では一般的です。

また、アプリケーション内でタイムスタンプを明示的に追跡できるようにする、名前のわからないSimpleConsumer APIを使用することもできます(非常に複雑です)。これは、キューから読み取られたデータの処理を独自のアプリケーションで追跡できるため、ネイティブKafka APIを使用して実行できる最高レベルの処理保証です。

関連する問題