Kafkaにトピックのリストを尋ねる方法を見つける必要があります。 kafka-topics.sh
ディレクトリに含まれるbin\
スクリプトを使用して、それができることを知っています。このリストを作成したら、トピックごとにすべてのコンシューマーが必要になります。そのディレクトリでスクリプトを見つけることができませんでした。また、kafka-consumer-api
ライブラリでそれを実行できるクラスも見つかりませんでした。
この背後にある理由は、トピックのオフセットと消費者のオフセットの違いを把握する必要があるからです。
これを達成する方法はありますか?または、各消費者にこの機能を実装する必要がありますか?
Kafka-consumer-groups.shを使用します
例えば
bin/kafka-consumer-groups.sh --list --bootstrap-server localhost:9092
bin/kafka-consumer-groups.sh --describe --group mygroup --bootstrap-server localhost:9092
0.9.0.0でこれを使用できます。バージョンカフカ
./kafka-consumer-groups.sh --list --zookeeper hostname:potnumber
作成したグループを表示します。これにより、すべてのコンシューマグループ名が表示されます。
./kafka-consumer-groups.sh --describe --zookeeper hostname:potnumber --describe --group consumer_group_name
詳細を表示するには
GROUP, TOPIC, PARTITION, CURRENT OFFSET, LOG END OFFSET, LAG, OWNER
Kafkaはすべての情報を動物園管理者に保存します。すべてのトピック関連情報は、brokers-> topicsで確認できます。すべてのトピックをプログラムで取得する場合は、Zookeeper APIを使用して実行できます。
以下のリンクで詳細に説明されています Tutorialspoint 、 Zookeeper Programmer guide
高レベルのコンシューマはZookeeperに登録されているため、kafka-topics.sh
がトピックのリストを取得する方法と同様に、ZKからリストを取得できます。 all消費者を収集する方法はないと思います。いくつかの消費要求で送信するアプリケーションは実際には「消費者」であり、それらが既に行われたかどうかはわかりません。
コンシューマー側には、 遅延を監視するために公開されるJMXメトリック があります。また、遅延監視には Burrow があります。
この質問はもう4年近く経っています。それ以来、Kafkaで多くの変更が行われました。これは上記のとおりですが、小さな活字でしか書かれていないので、私がこの質問に出くわしたユーザーのために書いています。
kafka-consumer-groups --bootstrap-server kafka:9092 --describe
--group console-consumer-69763 Consumer group 'console-consumer-69763' has no active members.
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID Host CLIENT-ID
pytest 0 5 6 1 - - -
``