Apache Kafkaクライアントを使用して、Kafkaからのレコードをポーリングします。
私が次のようなことをするとしましょう:
org.apache.kafka.clients.consumer.Consumer consumer = ...
...
ConsumerRecords<String, String> consumerRecords = consumer.poll(...);
List<ConsumerRecord<String, String>> records = consumerRecords.records(partition);
私の質問:records
自然な順序で返されますか?より具体的には、それらoffset
はrecords
リストで並べ替えられていますか?
JavaDocでこのプロパティに固有の情報を見つけることができませんでした。
ソースコードを見ると、はい、パーティション内のレコードの順序は保たれているようです。レコードはに保存され、ArrayList
オフセットを使用してフェッチされますhttps://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/consumer/internals/Fetcher.java
複数のパーティションを持つメッセージのApache Kafka順序での回答も参照してください
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加