我正在考虑使用Apache Kafka,但我找不到有关持久订阅的任何信息。假设我的分区中的邮件已过期5秒。现在,如果消费者失败并在5秒后重新连接,他错过的消息将消失。更糟糕的是,他不会知道他错过了一条消息。持久订阅模式通过为失败或断开连接的使用者保存消息来解决此问题。 Kafka是否实现了类似的功能?
答案 0 :(得分:0)
Kafka不支持此功能。但是,您当然可以增加保留时间,从而限制消费者错过消息的可能性。
此外,如果您将auto.offset.reset
设置为none
,您将收到一个异常,通知您消费者是否遗漏了任何消息。因此,如果发生这种情况,可以获得通知。
最后但并非最不重要的是,有可能使用compacted
主题 - 这将确保在您明确编写所谓的逻辑删除消息之前不会删除消息。请注意,记录必须具有唯一键才能使用压缩主题。