【问题标题】:Java Spring boot kafka delete message from topic with offsetJava Spring boot kafka从带有偏移量的主题中删除消息
【发布时间】:2020-09-08 23:29:59
【问题描述】:

我正在尝试创建一个 Spring Boot 应用程序(Java),该应用程序必须能够通过提供其偏移量和分区来从 kafka 主题中删除消息。 我一直在研究可以做到这一点的java或spring boot包类,但我只发现了这样的东西: Delete Messages from a Topic in Apache Kafka 有一个 java kafka 客户端有一种方法可以在偏移之前删除所有消息,但我只删除一个。 这可能吗?

提前致谢

【问题讨论】:

  • 这能回答你的问题吗? Delete single records from a kafka topic 它是裸卡夫卡,不能直接在 Java API 中使用。但是看到答案大多数时候是“你不能”,那么它也适用于 Java。
  • 必须删除,不能只留空,还必须用Java ????
  • 谁给你这个要求,他们了解 kafka 的工作原理吗?

标签: java spring-boot apache-kafka


【解决方案1】:

如果你只有偏移号和分区,你可以只删除那个偏移处的记录,你不能保证所有消费者都会有一个最终一致的视图,所以这就是为什么它不是标准操作。

建议:用相同的key写一条新的记录,空的body可以作为一个事件告诉所有的消费者这条记录被删除了。

正文为空的记录将保留在删除保留时间中配置的主题中。这通常比正常的保留时间长,以确保消费者有足够的时间删除过时的记录。删除保留时间到期后,原始记录和空记录都会被日志压缩删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 2018-05-19
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    相关资源
    最近更新 更多