由此:http://kafka.apache.org/documentation.html#compaction ,很明显,如果我启用了日志压缩,就不能保证什么会留在日志的“头”中。因此,考虑到我有消费者(例如:审计消费者),我如何确保我将维护所有消息至少7天,只有早于此的消息才有资格压缩?
非公开的配置w.r.t log.compression允许我给出这样的保证。这可能吗?
由此:http://kafka.apache.org/documentation.html#compaction ,很明显,如果我启用了日志压缩,就不能保证什么会留在日志的“头”中。因此,考虑到我有消费者(例如:审计消费者),我如何确保我将维护所有消息至少7天,只有早于此的消息才有资格压缩?
非公开的配置w.r.t log.compression允许我给出这样的保证。这可能吗?
2条答案
按热度按时间eulz3vhy1#
你可以设置两个主题。一个没有原木压实,保留期为7天。另一个是原木压实。一个简单的kafka streams应用程序可以读取未压缩的主题并写入压缩的主题。如果您的客户端应用程序不想处理两个主题,您可以编写一个 Package 器,使这两个主题看起来像一个连续的日志。
epfja78i2#
这难道不能解决你的问题-设置为7天?
日志清理器可以配置为保留日志的最小未压缩“头”。这可以通过设置压缩时间延迟来启用。
log.cleaner.min.compaction.lag.ms
这可以用来防止比最短消息期限新的消息被压缩。”(来自http://kafka.apache.org/documentation.html#compaction)