在卡夫卡博克大学,保留期为零是否有意义?
我们希望通过kafka经纪人将消息从生产者快速转发到消费者。从代理计算机上的buffercache / pagecache,不刷新到磁盘。我们不需要复制,并假设我们的经纪人永远不会崩溃。
答案 0 :(得分:2)
当产生有关Kafka主题的消息时,会将其写入磁盘。消耗完消息后,使用方将提交此消息的偏移量(如果您使用的是高级使用方API),但是没有任何功能可以删除已使用的消息(许多使用方可以订阅相同的主题,其中一些可能已经使用了该消息,而另一些则没有。
在您的情况下,我建议设置一个较短的保留期(默认设置为7天),但要留出一段合理的时间,以使您的消费者可以使用这些消息。为此,您只需要在server.properties
中配置以下参数:
log.retention.ms=X
请注意,不能保证您的使用者已经成功使用了已删除的邮件。例如,如果您将保留期设置为2秒(即log.retention.ms=2000
),而您的使用者崩溃了,那么当使用者关闭时发送给该主题的每条消息都将丢失。