从卡夫卡州立商店中删除条目

时间:2018-11-07 13:25:41

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

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

  1. 是否可以进行一些配置,以便在一段时间后根据配置清除状态?

  2. 另一种方法是发送带有密钥的逻辑删除消息,以便将条目从商店中删除。但是,我认为,这还需要做更多的工作,因为我们必须设法向该主题发送另一条消息并对其进行处理以删除该条目

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

1 个答案:

答案 0 :(得分:2)

  1. 不是atm。 (cf https://issues.apache.org/jira/browse/KAFKA-4212
  2. 那是正确的方法。
  3. 没有区别。如果您执行KeyValueStore#delete(),则该条目将从商店中删除,并且逻辑删除将被写入后备更改日志主题。
  4. 队列是什么意思?