Kafka 主题是否与 zookeeper 相关联,如果 zookeeper 更改,主题是否会消失

Is Kafka topic linked with zookeeper and If zookeeper changed will topic disappeare

我正在使用 Kafka。我下载了 zookeeper,解压缩并启动它。 然后我下载了 Kafka,解压压缩文件并启动 Kafka。一切都很好。我创建了几个主题,并且能够发送和接收消息。之后我停止了 KafkaZookeeper。然后看了下Kafka本身就提供了Zookeeper。因此,我启动了 Kafka 随附的 Zookeeper。但是它的数据目录不同,然后我从相同的配置文件和相同的数据目录位置启动了 Kafka。但是在启动 Kafka 之后,我找不到我创建的主题。

我只是想知道,这是否意味着有关主题的元数据由 Zookeeper 维护。我搜索了 Kafka 文档,但是,我找不到任何详细信息。 https://kafka.apache.org/documentation/

检查 this confluent 提供的文档。根据这个Apache Kafka® uses ZooKeeper to store persistent cluster metadata and is a critical component of the Confluent Platform deployment. For example, if you lost the Kafka data in ZooKeeper, the mapping of replicas to Brokers and topic configurations would be lost as well, making your Kafka cluster no longer functional and potentially resulting in total data loss.

所以,你的问题的答案是,是的,zookeeper 的目的是存储有关 kafka 代理、主题等的相关元数据。

另外,由于您刚刚开始使用 Kafka 和 Zookeeper,所以我想提一下。默认情况下,Kafka 将其数据存储在一个临时位置,该位置在系统重启时会被删除,因此您也应该更改它。

你的问题标签的答案是肯定的,

1) 最初你从 zip 文件启动了独立的 zookeeper 然后你停止了 zookeeper,这意味着创建的主题存储在 zookeeper standalone 是 lost.Now你与 Kafka 相关的持久集群元数据丢失了。

2)第二次用Kafka自带的包启动zookeeper,现在新的zookeeper实例已经没有之前创建的topics信息了,需要重新创建。

3) 假设情况 1:如果您关闭终端并再次从独立模式启动 zookeeper,则无需再次创建主题,但如果您从独立模式停止 zookeeper 服务器,则主题将丢失。

简单来说:您创建了两个单独的 zookeeper 实例,它们之间不会共享主题。