清理策略:Compact/Delete and log.retention

pos*_*ver 6 apache-kafka

我有一个关于 Kafka 主题清理策略及其与 log.retention 的交互的问题....

比如我把cleanup.policy设置为compact,compaction只会在topic的保留时间之后才开始或者保留时间对compaction没有影响?

问题的第二部分,如果我使用compact,delete一起,并且我有log.retention for让说1天,主题一直被压缩但是主题的内容会在一天后被删除?或者一天后实现压缩和删除?

谢谢你的答案...

Roh*_*dav 11

日志段可以被删除或压缩,或两者兼而有之,以管理它们的大小。主题级别的配置cleanup.policy决定了主题日志段的管理方式。

通过压缩清理日志

如果主题级别配置cleanup.policy设置为compact,则日志清理器会在后台定期压缩主题的日志。

在压缩的主题中,日志只需要包含每个键的最新消息,而可以丢弃较早的消息。

无需将 log.retention 设置为 -1 或任何其他值。您的主题将被压缩并且旧消息永远不会被删除(根据压缩规则)。

注意只有非活动的文件段才能被压缩;活动段永远不会被压缩。

使用两者进行日志清理

您可以同时为配置指定deletecompactcleanup.policy。在这种情况下,日志被压缩,但清理过程也遵循retention timesize limit设置。

我建议你通过以下链接

https://ibm.github.io/event-streams/installing/capacity-planning/

https://kafka.apache.org/documentation/#compaction

https://cwiki.apache.org/confluence/display/KAFKA/KIP-71%3A+Enable+log+compaction+and+deletion+to+co-exist