这绝对不是做到这一点的方法,它可能应该由清理策略处理,但这不是重点。假设log.dirs中的文件已被删除,会产生什么影响?
经纪人会崩溃吗?
重新启动服务后,偏移量将从0开始吗?
是否有必要做任何修复?
答案 0 :(得分:1)
如果您从log.dirs
中删除文件,数据将被删除,但是主题仍然存在于zookeeper元数据中。经纪人不会崩溃。重新启动代理后,它将作为空白主题读取主题,您可以生成新数据。
如果您还从Zookeeper元数据中删除主题,它将从代理中删除主题。
要检查偏移量,可以使用以下命令:
// Before deleting the log.dirs directory for topic 'test1'
kafka_2.12-1.1.1 % bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic test1
test1:0:6
// After deleting the directory and restarting the broker
kafka_2.12-1.1.1 % bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic test1
test1:0:0
答案 1 :(得分:1)
实际上,这将取决于您的集群中有多少个代理,以及您同时从中删除了几个代理。幸运的是,如果您从3代理群集中的一个代理中删除文件,并且为主题定义了3的复制因子,则不会丢失任何内容,并且将在删除它们的代理上重新创建文件。>