kafka在重启时失去所有主题

Tyc*_*cho 8 apache-kafka

我在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
Run Code Online (Sandbox Code Playgroud)

Chr*_*ken 13

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

  • 最好将“zookeeper.properties”文件中的“dataDir”属性更改为永久路径,这样在重新启动操作系统后启动kafka服务器时就不会出现“kafka.common.InconcientClusterIdException”异常。 (2认同)

小智 6

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

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

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

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

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

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


小智 5

转到kafka安装文件夹> config> server.properties

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