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

0vvn1miw  于 2021-06-08  发布在  Kafka
关注(0)|答案(2)|浏览(509)

我目前正在尝试使用docker kafka的新环境测试kafka保留日志。
我曾经 config/server.properties 并设置以下日志保留:

  1. log.retention.ms=2000
  2. 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毫秒后不会删除日志文件。
关于Kafka文件:
删除日志文件之前保留日志文件的毫秒数(毫秒),如果未设置,则使用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设置主题级配置,但我很好奇这些主题级配置是否保存在某个地方。

z8dt9xmd

z8dt9xmd1#

全局配置 log.retention.{hours|minutes|ms} controls the default behavior for all topics. The topic-level config 保留。ms`用于单个主题。
在您的情况下,在设置主题级别配置之前,日志没有被删除,因为默认参数值是7天。

xuo3flqw

xuo3flqw2#

服务器重新启动后,全局配置用于使用默认配置的现有主题(没有覆盖现有配置的主题级别配置)以及服务器重新启动后创建的任何新主题。
我再次测试了另一个配置(仅与保留日志时间有关),并确认没有为现有或新主题设置对全局配置所做的任何更改。在另一个服务器重启之后,设置了“新的”全局配置。

相关问题