カフカトピックパーティションオフセットの位置は、常に0またはランダムな値から開始します。コンシューマレコードがパーティション内の最初のレコードであることを確認する方法は?見つけ出す方法はありますか?もしあれば教えてください。ありがとう。カフカトピックパーティション
0
A
答えて
0
はいでは、カフカオフセットは0から始まり、完全なレコードのバイト長で終了し、次のレコードはそれ以降のオフセットを選択します。
カフカが配布されているので、コンシューマーが順序付けられた方法でデータを取得することは保証できません。
2
はい、いいえ。
新しいトピックを開始すると、オフセットはゼロから始まります。 –または
- 論理 –とメッセージによるメッセージをインクリメント(https://issues.apache.org/jira/browse/KAFKA-506が0.8.0以降)です各メッセージのバイト数で表します。 ;例えば、ストレージの最大10ギガバイトで使用します。
- 保持時間:例えば、先週だけ
- 保持サイズのメッセージを維持しさらに、古いログ・エントリは、設定条件によってクリアされ
(0.8.1以降)、それ以上
- ログ圧縮を保存することができない古いメッセージを削除します。あなただけの各キーの最新の値を保存する(https://cwiki.apache.org/confluence/display/KAFKA/Log+Compactionを参照)
したがって、は最初ではないかもしれませんオフセット古いメッセージが削除された場合は、ゼロ。さらに、ログ圧縮をオンにすると、一部のオフセットが失われる可能性があります。
いずれの場合でも、オフセットが有効かどうかをカフカが把握できるため、いつでもオフセットを安全に見つけることができます。無効なオフセットの場合、自動的に次の有効なオフセットに進みます。 したがって、ゼロをオフセットしようとすると、格納されている最も古いメッセージが常に得られます。
関連する問題
あなたの具体的な疑問は何ですか?ドキュメントには、「各パーティションは順序付けられたメッセージのシーケンスです」(http://kafka.apache.org/documentation.htmlの「order」を検索)という明確な内容が記載されています。あなたは注文について確信していないのですか、それとも2回目か3回目に消費者の位置を変更する手段をとっていますか? – Harald