【问题标题】:Deleting an entry from Kafka state store从 Kafka 状态存储中删除条目
【发布时间】:2018-11-07 13:25:41
【问题描述】:

我们有一个流处理应用程序,在流中,我们提取一个id 并将其存储在状态存储中。我的用例非常简单,我们存储 id,因为当我们收到请求时,我们将检查 id 是否存在于商店中。我们遇到的问题是,所有事件都会有一个唯一的 id 并且状态存储最终会导致内存不足。一段时间后不需要状态存储中的数据。

  1. 有没有办法进行一些配置,以便状态在一段时间后根据配置清除数据?

  2. 另一种方法是发送带有密钥的墓碑消息,以便从存储中删除条目。但是,我觉得,不知何故还有更多工作要做,因为我们必须设法向主题发送另一条消息并处理它以删除条目

  3. 如果我们采用第二种方法,如何处理故障?
  4. 有没有办法从商店中手动删除条目。如果是这样,从状态存储中删除条目会有什么影响?

【问题讨论】:

    标签: java apache-kafka apache-kafka-streams spring-kafka


    【解决方案1】:
    1. 不是大气压。 (参见https://issues.apache.org/jira/browse/KAFKA-4212
    2. 这是正确的方法。
    3. 没有区别。如果您执行KeyValueStore#delete(),则该条目将从存储中删除,并将墓碑写入支持更改日志主题。
    4. 队列是什么意思?

    【讨论】:

    • 感谢您的回答。 4)->我的意思是国营商店。我已经更新了这个问题。我想你已经回答了第 3 点。再次感谢!
    • 如果(4)是关于从商店中删除,那么(2)是什么意思——我认为(2)是关于这个的?
    • 我的意思是,如果有办法处理方法调用,比如KeyValueStore#delete()。抱歉不清楚。
    • 没有其他方法。您需要致电#delete()
    猜你喜欢
    • 2020-08-29
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    相关资源
    最近更新 更多