1

kafkaでトピックごとのメッセージ数を取得する方法を知りたいのですが、コマンドラインツールを使用したいと思っています次の記事で言及されています。どのようにこれを行うにはどのようなアイデア?トピックごとのメッセージ数を取得する方法Java APIを使用しているKafkaから

PS:私は新しいKafkaConsumerを使用し

Java, How to get number of messages in a topic in apache kafka

答えて

3

(カフカから消費する前に)最初にこの数を把握しようと、数を把握するためにKAFKAの消費者の流れをループしたくありませんseekToBeginning(...)seekToEnd(...)を使用して、各パーティションの最大と最小のオフセットの差を計算し、それらの数値を合計することができます。

シークすると、メッセージは消費されません。シークは怠惰です。つまり、実際にシークを開始するには、position(...)を使用する必要があります。怠惰のために、両方のシークメソッドは何も返しません。ただし、position(...)は、あなたの解説に使用できるオフセットを与えます。

これはカフカ(MAPRストリーム)のMAPRバージョンを除いてうまく機能http://kafka.apache.org/0100/javadoc/index.html?org/apache/kafka/clients/consumer/KafkaConsumer.html

+1

を参照してください。オフセットにはレコードの開始位置の実際のバイトオフセットがあり、元のカフカで使用されている "1ずつインクリメント"オフセットではありません...したがって、最古のものと最新のものとの差異を取るだけで、それでもmapRを使って)。 –

+1

MapR Streamsの使用に関する質問は何も言いません(これは、AFAIKはMapR版のKafkaではなく、新しいシステムのみのAPI互換です)。 –

+1

あなたはそれについて正しいです。質問は「本当の」カフカについてのものだったので、+1 –

関連する問題