【问题标题】:Is it possible to configure Kafka to not delete unread messages?是否可以将 Kafka 配置为不删除未读消息?
【发布时间】:2018-04-04 15:40:28
【问题描述】:

我完全知道 Kafka 是一个日志并充当哑管道。但是在我们的应用程序中,我们有一些“合规主题”,我们需要确保其中的所有消息都被读取。

由于 Kafka 在内部处理所有消费者的偏移量(因此可以监控消费者滞后),我想知道是否可以设置 log.retention=25GB,但不要覆盖任何人都没有读取的消息,而是抛出生产者异常(就好像我们设置了log.retention=1week 并且硬盘已满)。

如果无法在 Kafka 级别进行配置,是否有任何实用的方法可以在 kafka-producer 或 kafka-streams 上实现此逻辑,因此在“完整未读日志”的情况下会失败?

【问题讨论】:

    标签: apache-kafka kafka-producer-api apache-kafka-streams


    【解决方案1】:

    您无法将 Kafka 配置为保留未读消息。但是,您可以使用新的“清除数据”API 增加保留时间/空间并手动删除数据。

    详情请见https://cwiki.apache.org/confluence/display/KAFKA/KIP-107%3A+Add+deleteRecordsBefore%28%29+API+in+AdminClient

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      相关资源
      最近更新 更多