我试图对主题的大小设置一个绝对限制,这样它就不会在写入速度异常高的情况下填满磁盘。
大多数情况下,这相当于一些计算,例如 segment=min(1GB, 0.1 * $max_space/$partitions)
和设置 retention.bytes=($max_space/$partitions - $segment ),segment.bytes=$segment
并减少log.retention.check.interval.ms
。 (您甚至可以尝试一些绝技,例如确定您的最大写入速率(磁盘或网络限制),然后根据该速率和 log.retention.check.interval.ms
减去安全边际,也许还有一些绝对偏移量10MB head 索引文件。)其他问题都讨论过这些,我不是在问任何一个。
我想知道 log.segment.delete.delay.ms
是做什么用的,我是否可以安全地将它设置为 0(或某个非常小的值 - 5?)。该文档仅说明“从文件系统中删除文件之前等待的时间”。我想知道您为什么要这样做,即什么或谁从这段非 0 的时间中受益。
最佳答案
此配置可用于确保您的主题的消费者在消息被删除之前实际上有时间使用该消息。
此配置声明当 LogCleaner 由通过 log.retention.bytes
或 log.retention.ms 设置的基于时间或基于大小的清理策略触发时应用的延迟
。
特别是当您根据数据大小计算保留时,此配置可以帮助您设置一条消息被删除前的最短时间,并允许消费者在这段时间内实际使用该消息。
关于apache-kafka - 如果我将 log.segment.delete.delay.ms 设置为 0,我可以破坏任何东西吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64315464/