Kafka设置默认保留日志和测试

时间:2017-08-08 20:30:34

标签: apache-kafka

我目前正在尝试使用docker-kafka的新环境测试kafka保留日志。

我使用了config/server.properties并为日志保留设置了以下内容:

log.retention.ms=2000
log.retention.check.interval.ms=2000

创建主题并向其添加消息,我将通过转到输出日志的位置来测试日志的大小。就我而言,它位于/tmp/kafka-logs/<topic-name>。然后只需ls -l即可查看字节大小。

添加更多消息将增加日志文件的大小(以字节为单位)。如果有更好的方法来检查日志,请告诉我。

运行: $ bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic <topic-name>

我没有配置输出。 2000 ms后不会删除日志文件。

关于Kafka文档:

  

在删除日志文件之前保留日志文件的毫秒数(in   毫秒),如果未设置,则使用log.retention.minutes中的值

但是,使用以下命令设置主题级配置: $ bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic <topic-name> --config retention.ms=2000

检查标题上的配置: $ bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic <topic-name>

我看到为主题设置了保留期。此外,再次检查日志大小,它可能会在2000毫秒后删除日志,但它会在短时间内清除。

如何为创建的所有主题设置默认配置?具体与日志保留时间有关吗?

另外,一个额外的附加问题,是否有创建的每个主题的配置文件?我主要是因为我知道如何通过cli设置主题级配置,但很想知道这些主题级配置是否保存在某个地方。

2 个答案:

答案 0 :(得分:1)

全局配置log.retention.{hours|minutes|ms} controls the default behavior for all topics. The topic-level config retention.ms`适用于各个主题。

在您的情况下,在设置主题级配置之前,日志没有被删除,因为默认参数值是7天。

答案 1 :(得分:0)

服务器重启后,全局配置用于使用默认配置的现有主题(没有覆盖现有配置的主题级配置)以及服务器重启后创建的任何新主题。

我再次使用其他配置(仅与保留日志时间有关)进行测试,并确认未对现有主题或新主题设置对全局配置所做的任何更改。在另一台服务器重新启动后,&#34; new&#34;全球配置已经确定。

相关问题