apache-kafka - 如果我将 log.segment.delete.delay.ms 设置为 0,我可以破坏任何东西吗

标签 apache-kafka kafka-consumer-api

我试图对主题的大小设置一个绝对限制,这样它就不会在写入速度异常高的情况下填满磁盘。

大多数情况下,这相当于一些计算,例如 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.byteslog.retention.ms 设置的基于时间或基于大小的清理策略触发时应用的延迟

特别是当您根据数据大小计算保留时,此配置可以帮助您设置一条消息被删除前的最短时间,并允许消费者在这段时间内实际使用该消息。

关于apache-kafka - 如果我将 log.segment.delete.delay.ms 设置为 0,我可以破坏任何东西吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64315464/

相关文章:

java - 什么数据格式被认为在 Kafka 上写入速度最快?

distributed-system - 多个broker中的kafka log.retention.hours不一致

ssl - Kafka,为什么在使用 kafka-console- Producer (或 Kafkcat )进行测试时需要传递证书链而不仅仅是根 ca

java - 处理从一个主题到同一主题的流(循环处理)

apache-kafka - Apache 卡夫卡 : Can we restrict message to be read by only 1 consumer?

apache-kafka - Kafka 如何保证消费者跨分区处理的消息顺序?

go - 要同时启动Kafka使用者和HTTP服务器?

java - 如何部署Spark Streaming应用程序?

java - 在 kafka -.81 中创建/更新带有分区的主题

java - 为什么Kafka消费者性能慢?