gpt4 book ai didi

docker - Kafka Broker在docker重新启动后找不到集群ID并创建新的ID

转载 作者:行者123 更新时间:2023-12-02 17:30:08 25 4
gpt4 key购买 nike

我已经使用kafka经纪人和zookeeper创建了docker,以运行脚本启动它。
如果我重新启动,它将正常启动并运行正常(Windows-> WSL->两个tmux窗口,一个 session )。如果我关闭kafka或zookeeper,然后再次启动它,它将正常连接。

当我停止docker容器(docker stop my_kafka_container)时出现问题。然后,我从脚本./run_docker开始。在开始之前的那个脚本中,我删除了旧的容器docker rm my_kafka_container,然后运行docker。

Zookeeper可以正常启动,并且在文件meta.properties中具有自上次启动以来的旧群集ID,但是由于某些原因,kafka代理无法通过znode cluster / id找到此ID,并创建了一个新的ID(不是存储在meta.properties中的ID)。我得到

  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?

最佳答案

如果您100%确定要连接到正确的ZooKeeper和正确的Kafka日志目录,但是由于某些原因,它们不匹配,并且您不想在尝试恢复时丢失所有数据:

Kafka数据目录(检查config / server.properties中的log.dirs属性,默认为/tmp/kafka-logs)包含一个名为meta.properties的文件。它包含集群ID。哪个应该与注册到ZK的ID相匹配。编辑文件以匹配ZK,编辑ZK以匹配文件或删除文件(它包含群集ID和代理ID,第一个当前已损坏,第二个通常在配置文件中)。经过这一小小的手术后,Kafka将以您现有的所有数据开始,因为您没有删除任何数据文件。

像这样:
mv /tmp/kafka-logs/meta.properties /tmp/kafka-logs/meta.properties_old

关于docker - Kafka Broker在docker重新启动后找不到集群ID并创建新的ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59592518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com