コマンドラインを使用して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
この点で誰かが助けることができます!!
前もって感謝します !!
コマンドプロンプトからグループ名を変更する答えを得ました!!
手順:
consumer.properties
ファイル、たとえばconsumer1.properties
。group.id=<Give a new group name>
の中に consumer1.properties
。bin/kafka-console-consumer.sh --new-consumer --bootstrap-server localhost:9092 --topic topicname --from-beginning --consumer.config config/consumer1.properties --delete-consumer-offsets
最も簡単な解決策は次のとおりです。
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic nil_RF2_P2 --from-beginning -consumer-property group.id = test1
フラグ-from-beginningを指定した場合、コンシューマグループは過去にレコードを消費してはならないことに注意してください。 (そして、あなたが誤って仮定するかもしれないので、実際の始まりからではありません)。
レコードのオフセットを失わずにグループIDを変更する場合、現在のGroup.idのオフセットを手動で取得し、新しいIDを持つ新しい実行コンシューマに設定します。コンシューマインスタンスでオフセットを取得するコントロールがない場合は、このコマンドを実行できます。
/bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server <ip_address>:<Broker_port> --group Group_name --describe
そして、特定のオフセットからデータをシークできます。コールポーリングの後にシークを呼び出す必要があることに注意してください。、Assignコマンドが機能しません。また、githubでコードのサンプルを見ることができます
--groupオプションは次のように使用できます(Kafka 2.0.0でテスト済み):
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --group test-consumer --topic test --from-beginning
Bashを使用している場合は、プロセス置換機能を使用できます。
bin/kafka-console-consumer.sh --zookeeper localhost:2181 \
--topic nil_RF2_P2 --from-beginning \
--consumer.config <(echo group.id=test1)