kafkaブローカーとzookeeperを使用してdockerを作成し、スクリプトを実行して開始します。フレッシュスタートを実行すると、正常に開始され、正常に実行されます(Windows-> WSL-> 2つのtmuxウィンドウ、1つのセッション)。kafkaまたはzookeeperをシャットダウンして再起動すると、正常に接続されます。
Dockerコンテナーを停止すると問題が発生します(docker stop my_kafka_container)。次に、スクリプト./run_dockerから始めます。スクリプトを開始する前に、古いコンテナを削除しますdocker rm my_kafka_container
それからdocker runを実行します。
Zookeeperは正常に起動し、ファイルmeta.propertiesには前回の起動時の古いクラスターIDが含まれていますが、kafkaブローカーは何らかの理由でznode cluster/idでこのIDを見つけられず、新しいIDを作成しますmeta.propertiesに保存されているものです。
ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka.common.InconsistentClusterIdException: The Cluster ID m1Ze6AjGRwqarkcxJscgyQ doesn't match stored clusterId Some(1TGYcbFuRXa4Lqojs4B9Hw) in meta.properties. The broker is trying to join the wrong cluster. Configured zookeeper.connect may be wrong.
at kafka.server.KafkaServer.startup(KafkaServer.scala:220)
at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:44)
at kafka.Kafka$.main(Kafka.scala:84)
at kafka.Kafka.main(Kafka.scala)
[2020-01-04 15:58:43,303] INFO shutting down (kafka.server.KafkaServer)
ブローカーがクラスターIDを変更しないようにするにはどうすればよいですか?
これを試して:
これは私のために働いた:)
これは、Kafka 2.4.0リリースで導入された新機能によるもので、[KAFKA-7335] - Store clusterId locally to ensure broker joins the right cluster
。 Dockerの再起動が発生すると、この不一致により、Kafkaはローカルに保存されているclusterId
をZookeeperのclusterId
(Dockerの再起動により変更された)に一致させようとしますが、上記のエラーがスローされます詳細については this link を参照してください。
WindowsマシンでKafkaサーバーを実行しているときに同じ問題が発生しました。
この問題を解決するには、以下を試してください:
それが役に立てば幸い。乾杯