kafka 在重启时丢失所有主题

kafka loses all topics on reboot

我正在 VM 中试用 Kafka (0.8.2.1),但遇到了问题:尽管机器保持开启状态时一切正常(即使我重新启动 ZK/Kafka),如果我重新启动机器(在正常关闭 ZK/Kafka 之后)似乎所有 Kafka 主题都丢失了。

我可能在这里遗漏了一些基本的东西,因为这可能不应该发生。可能是什么?

cd /vagrant/kafka_2.11-0.8.2.1
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 10 --topic foo
bin/kafka-topics.sh --list --zookeeper localhost:2181
# foo
# ^C then resume ZooKeeper, Kafka, or both
bin/kafka-topics.sh --list --zookeeper localhost:2181
# foo
# ^C both, reboot machine, boot ZK/Kafka again
bin/kafka-topics.sh --list --zookeeper localhost:2181
# no topics

看起来日志的默认位置在 /tmp 目录中,该目录在重新启动时被擦除。将配置中的该位置更改为更永久的位置。

进入kafka安装文件夹>配置>server.properties

在该文件中搜索 log.dirs,将路径从 /tmp/logs 更改为本地目录。重新启动 kafka 服务器,您将看到创建的主题将保存在我们在配置文件中更改的本地文件夹中。

发生这种情况是因为 tmp 文件夹在重新启动时被清除。

要解决此问题,请执行以下操作。

转到你的kafka安装目录并搜索文件server.properties。您应该看到如下部分

用于存储日志文件的逗号分隔目录列表
log.dirs=/tmp/kafka-logs

将 logs.dir 更改为更本地的内容或像这样的自定义目录。 log.dirs=/Users/xxx/yyy/software/confluent-5.3.1/mydata

重新启动您的kafka集群以使更改生效。 重新启动您的系统,您将看到主题仍然存在。