web-dev-qa-db-ja.com

コマンドラインを使用してkafkaでメッセージを消費するときにグループ名を設定する方法

コマンドラインを使用してkafkaでメッセージを消費する際にグループ名を設定する方法についてのアイデア。

私は次のコマンドを試しました:

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic nil_RF2_P2 --from-beginning --config group.id=test1
'config' is not a recognized option

目標は、次のコマンドを使用して、消費されたメッセージのオフセットを見つけることです。

bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper localhost:2181 --group test1

この点で誰かが助けることができます!!

前もって感謝します !!

14
Nilotpal

コマンドプロンプトからグループ名を変更する答えを得ました!!

手順:

  1. 新しいを作成します consumer.propertiesファイル、たとえばconsumer1.properties
  2. 変化する group.id=<Give a new group name> の中に consumer1.properties
  3. bin/kafka-console-consumer.sh --new-consumer --bootstrap-server localhost:9092 --topic topicname --from-beginning --consumer.config config/consumer1.properties --delete-consumer-offsets
14
Nilotpal

最も簡単な解決策は次のとおりです。

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic nil_RF2_P2 --from-beginning -consumer-property group.id = test1

フラグ-from-beginningを指定した場合、コンシューマグループは過去にレコードを消費してはならないことに注意してください。 (そして、あなたが誤って仮定するかもしれないので、実際の始まりからではありません)。

20
vtsamis

レコードのオフセットを失わずにグループIDを変更する場合、現在のGroup.idのオフセットを手動で取得し、新しいIDを持つ新しい実行コンシューマに設定します。コンシューマインスタンスでオフセットを取得するコントロールがない場合は、このコマンドを実行できます。

/bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server <ip_address>:<Broker_port>  --group Group_name --describe

そして、特定のオフセットからデータをシークできます。コールポーリングの後にシークを呼び出す必要があることに注意してください。、Assignコマンドが機能しません。また、githubでコードのサンプルを見ることができます

ここの例

4
Jeus

--groupオプションは次のように使用できます(Kafka 2.0.0でテスト済み):

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --group test-consumer --topic test --from-beginning

1
Eno Thereska

Bashを使用している場合は、プロセス置換機能を使用できます。

bin/kafka-console-consumer.sh --zookeeper localhost:2181 \
--topic nil_RF2_P2 --from-beginning \
--consumer.config <(echo group.id=test1)
0
slavik