使用kafka的日志压缩,我能做些什么来保证消费者不会错过消息,如果他们没有落后于某个定义的时间限制呢?

dzhpxtsq  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(287)

由此:http://kafka.apache.org/documentation.html#compaction ,很明显,如果我启用了日志压缩,就不能保证什么会留在日志的“头”中。因此,考虑到我有消费者(例如:审计消费者),我如何确保我将维护所有消息至少7天,只有早于此的消息才有资格压缩?
非公开的配置w.r.t log.compression允许我给出这样的保证。这可能吗?

eulz3vhy

eulz3vhy1#

你可以设置两个主题。一个没有原木压实,保留期为7天。另一个是原木压实。一个简单的kafka streams应用程序可以读取未压缩的主题并写入压缩的主题。如果您的客户端应用程序不想处理两个主题,您可以编写一个 Package 器,使这两个主题看起来像一个连续的日志。

epfja78i

epfja78i2#

这难道不能解决你的问题-设置为7天?
日志清理器可以配置为保留日志的最小未压缩“头”。这可以通过设置压缩时间延迟来启用。 log.cleaner.min.compaction.lag.ms 这可以用来防止比最短消息期限新的消息被压缩。”
(来自http://kafka.apache.org/documentation.html#compaction)

相关问题