2016-09-27 85 views
4

我正在寫日誌消息到卡夫卡主題,我希望保留這個主題是永久的。我曾在Kafka和Kafka Connect(_schemas,connect-configs,connect-status,connect-offset等)中看到有特殊主題未被日誌保留時間刪除。我如何執行一個話題來像這些其他專題一樣?它是命名約定還是其他屬性?使卡夫卡主題日誌保留永久

感謝

回答

2

這些特殊主題是壓縮主題。這意味着它們由鍵控消息組成,並且只保留列表最近的鍵。全寫here。在大多數情況下,這可能是您想要的無限保留時間。

6

如果你想永遠保留所有主題,您可以設置兩個和log.retention.bytes爲-1。

+0

似乎在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) –