Apache kafka kafka分区有很多日志段

Apache kafka kafka分区有很多日志段,apache-kafka,Apache Kafka,一个主题有20个分区,几乎每个人都有20000多个日志段文件,其中大多数是几个月前创建的。即使我将retention.ms配置为极短,这些段也不会被删除。而其他主题可以正常循环使用 我想知道里面有什么问题,怎么解决。因为我担心总段数会不断增加,超过OSvm.max\u map\u count,这会损坏kafka进程本身。下图是关于异常主题的描述 不确定问题到底是什么,但需要考虑以下几点: 代理与特定于主题的配置。检查以确保您的主题实际具有您认为它具有的配置,并且没有从代理设置继承这些配置 配置

一个主题有20个分区,几乎每个人都有20000多个日志段文件,其中大多数是几个月前创建的。即使我将
retention.ms
配置为极短,这些段也不会被删除。而其他主题可以正常循环使用

我想知道里面有什么问题,怎么解决。因为我担心总段数会不断增加,超过OS
vm.max\u map\u count
,这会损坏kafka进程本身。下图是关于异常主题的描述


不确定问题到底是什么,但需要考虑以下几点:

  • 代理与特定于主题的配置。检查以确保您的主题实际具有您认为它具有的配置,并且没有从代理设置继承这些配置


  • 配置与
    保留相关的
    正如Girogos Myrianthous所提到的,您可以查看
    log.retention.check.interval.ms
    log.cleanup.policy
    。我还将查看与滚动相关的设置,如
    log.roll.hours
    。我相信在某些情况下,卡夫卡不会删除一个段,直到它的分区滚动,即使该段是旧的。滚动遵循以下行为:

日志滚动时间不再取决于日志段创建时间。相反,它现在基于消息中的时间戳。更具体地说。如果段中第一条消息的时间戳为T,则当新消息的时间戳大于或等于T+log.roll.ms()

<>请确保考虑记录时间戳,而不仅仅是段文件的年龄。

最后:

  • 你用的是什么版本的卡夫卡
  • 你仔细看过经纪人日志了吗?代理日志是我如何解决我遇到的所有此类问题的

  • log.retention.check.interval.ms的值是多少?另外,是否已将
    log.cleanup.policy
    设置为
    cmpact
    delete
    ?log.retention.check.interval.ms为300000,其他主题可以正常删除日志。默认值是log.cleanup.policy,应该是“delete”。非常感谢您的回复。卡夫卡版本是0.10.2**我已经检查了zookeeper中关于异常主题的配置,我认为是override broker configs。有两种配置:
    retention.ms=1000
    segment.ms=15000
    **和
    log.retention.check.interval.ms
    log.cleanup.policy
    正在工作,因为其他主题正常循环。我查看了代理日志,但找不到任何有用的信息。再次感谢您的回复!不客气。如果你明白了,请贴一个答案。这些问题有时会令人沮丧