Zookeeper 3.4.6でkafka_2.9.2-0.8.1.1を使用しています。
Zookeeperから消費者グループを自動的に削除できるユーティリティはありますか?または、zookeeperの/ consumers/[group_id]の下にあるものをすべて削除できますか?後者の場合、私が不足しているものはありますか?これはライブシステムで行うことができますか?
更新:kafka=バージョン2.3.0の時点で、新しいユーティリティがあります:
> bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --delete --group my-group
関連ドキュメント: http://kafka.Apache.org/documentation/#basic_ops_consumer_lag
詳細については、以下を参照してください
現在、Kafkaコンシューマグループを削除する唯一の方法は、Zookeeperパス/consumers/[group_id]
を手動で削除することです。
消費者グループを削除するだけの場合、Zookeeperパスを手動で削除することについて心配する必要はありませんが、オフセットを巻き戻すためにそれを行う場合、以下が役立ちます。
まず、Zookeeperパスを削除する前に、コンシューマーグループに属するすべてのコンシューマーを停止する必要があります。そうしないと、これらのコンシューマーは新しく生成されたメッセージを消費せず、すぐにZookeeperクラスターへの接続を閉じます。
コンシューマを再起動するときに、コンシューマを最初から開始する場合は、auto.offset.reset
プロパティをsmallest
(または新しいKafkaリリースのearliest
)に渡します。プロパティのデフォルト値はlargest
(または新しいKafkaリリースではlatest
)です。これにより、再起動コンシューマは最大オフセットの後に読み取りを行い、新しく生成されたメッセージのみを消費します。プロパティの詳細については、Kafkaドキュメントの Consumer Config を参照してください。
参考までに、質問 があります。どのように消費者のオフセットを巻き戻すことができますか? Kafka FAQにありますが、あまり役に立ちません。
V0.9.0以降、Kafka=は/bin
そのうちの1つはkafka-consumer-groups.sh
ツール。これにより、コンシューマグループが削除されます。 ./kafka-consumer-groups.sh --zookeeper <zookeeper_url> --delete --group <group-name>
新しい消費者(zookeeperではなくkafkaトピックを使用してオフセットを管理する)の場合、kafkaの組み込みツールを使用してグループ情報を削除することはできません。
kafka-consumer-groups.sh
スクリプトを使用して、新しいスタイルのコンシューマーのグループ情報を削除しようとする例は次のとおりです。
bin/kafka-consumer-groups.sh --bootstrap-server "kafka:9092" --delete --group "indexer" --topic "cleaned-logs"
Option '[delete]' is only valid with '[zookeeper]'. Note that there's no need to delete group metadata for the new consumer as the group is deleted when the last committed offset for that group expires.
その応答の重要な部分は次のとおりです。
そのグループの最後にコミットされたオフセットが期限切れになるとグループが削除されるため、新しいコンシューマーのグループメタデータを削除する必要がないことに注意してください。
これは、監視の観点からいらいらさせられます(特に burrow のような方法でオフセットを追跡する場合)。これは、コード内のコンシューマーグループ名を変更すると、古いグループが後ろにあることを常に確認できるためです。それらのオフセットが期限切れになるまで、それらのオフセットで。
仮に、そのトピックに墓石を手動で書くこともできます(これは オフセット有効期限 の間に起こります)が、これを簡単にするツールは見つかりませんでした。
cLIでkafkaからグループを削除できます
kafka-consumer-groups --bootstrap-server localhost:9092 --delete --group group_name