gpt4 book ai didi

apache-kafka - 为什么Kafka不删除数据?

转载 作者:行者123 更新时间:2023-12-03 23:18:28 25 4
gpt4 key购买 nike

我有一个两节点的 Kafka 集群,每个集群分配了 48 GB 的磁盘。server.properties设置为最多保留 48 小时的日志或最多 1 GB 的日志段。这里是 :

log.retention.hours=48
log.retention.bytes=1073741824
log.segment.bytes=1073741824

我有一个主题的 30 个分区。以下是这些分区之一的磁盘使用情况统计信息:
-rw-r--r-- 1 root root 1.9M Apr 14 00:06 00000000000000000000.index
-rw-r--r-- 1 root root 1.0G Apr 14 00:06 00000000000000000000.log
-rw-r--r-- 1 root root 0 Apr 14 00:06 00000000000000000000.timeindex
-rw-r--r-- 1 root root 10M Apr 14 12:43 00000000000001486744.index
-rw-r--r-- 1 root root 73M Apr 14 12:43 00000000000001486744.log
-rw-r--r-- 1 root root 10M Apr 14 00:06 00000000000001486744.timeindex

您可以清楚地看到,我们有一个 1 GB 的日志段。但按照我的理解,它应该已经被删除了。此外,自 Kafka 推出这些日志以来已经超过 48 小时。想法?

最佳答案

在您的情况下,您设置了 log.retention.byteslog.segment.bytes到相同的值,这意味着始终没有可删除段的候选,因此不会发生删除。

算法是:

  • 首先计算差值。在您的情况下,差异为 73MB (73MB + 1GB - 1GB)
  • 迭代所有非事件日志段,将其大小与差异
  • 进行比较
  • 如果 diff > log 段大小,则将此段标记为可删除,并将 diff 递减 size
  • 否则,将此段标记为不可删除并尝试使用下一个日志段。
  • 关于apache-kafka - 为什么Kafka不删除数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43407036/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com