使卡夫卡主题日志保留永久

use*_*071 12 apache-kafka apache-kafka-connect

我正在将日志消息写入Kafka主题,我希望保留此主题是永久性的.我在Kafka和Kafka Connect(_schemas,connect-configs,connect-status,connect-offsets等)中看到,有些特殊主题未被日志保留时间删除.如何强制主题与其他特殊主题一样?它是命名约定还是其他一些属性?

谢谢

hig*_*ted 25

如果你想永远保留所有主题,您可以同时设置log.retention.hourslog.retention.bytes为-1.

  • 看来,在2015年4月之前,这样做的方法是将`log.retention.hours`设置为`2147483647`.然后[JIRA](https://issues.apache.org/jira/browse/KAFKA-1990)添加了-1功能.然而,JIRA没有明确说明什么价值被解释为"永远保留".我挖了一些代码,确实,它是[-1](https://github.com/apache/kafka/blob/0.11.0.2/core/src/main/scala/kafka/server/KafkaConfig.scala# L1165).您还可以为[小时,分钟或毫秒]设置-1(https://github.com/apache/kafka/blob/0.11.0.2/core/src/main/scala/kafka/server/KafkaConfig.scala#L1078 -L1090) (6认同)

daw*_*saw 6

这些特殊主题是压缩主题。这意味着它们由键控消息组成,并且只保留列表最近的键。完整写到这里。在大多数情况下,这可能是您想要的无限保留时间。