【问题标题】:Apache Kafka and durable subscribtionApache Kafka 和持久订阅
【发布时间】:2017-09-05 07:35:33
【问题描述】:

我正在考虑使用 Apache Kafka,但找不到任何有关持久订阅的信息。假设我的分区中的消息到期时间为 5 秒。现在如果消费者失败并在 5 秒后重新连接,他错过的消息将消失。更糟糕的是,他不会知道他错过了一条消息。持久订阅模式通过为失败或断开连接的消费者保存消息来解决这个问题。 Kafka中是否实现了类似的功能?

【问题讨论】:

  • 你所描述的更像是“没有过期”。
  • 它有效,但仅适用于某些消费者。我需要知道 Kafka 是否支持这样的事情,因为我的用例需要非常严格的过期时间。

标签: apache-kafka integration messaging producer-consumer


【解决方案1】:

Kafka 不支持此功能。但是您当然可以随时增加保留时间,从而限制消费者错过消息的可能性。

此外,如果您将auto.offset.reset 设置为none,您将收到一个异常通知,告知您消费者是否错过了任何消息。因此,如果发生这种情况,可以得到通知。

最后但并非最不重要的一点是,使用compacted 主题是可能的——这将确保在您明确编写所谓的墓碑消息之前不会删除消息。请注意,记录必须具有唯一键才能使用压缩主题。

【讨论】:

    猜你喜欢
    • 2019-09-30
    • 1970-01-01
    • 2016-01-14
    • 2013-12-17
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    相关资源
    最近更新 更多