Kafka State Store Processor删除:如何使用?

时间:2018-04-24 10:11:49

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

我已经定义了一个扩展 Processor 的类,并且我使用 KeyValueStore 来存储临时存储一些消息,然后将它们发送到sink主题。特别是,我在源主题上收到一组碎片消息,一旦收到所有消息,我就要将它们组合起来并将连接的消息发送到sink主题。在Processor:process()方法中,一旦我通过 delete(K key) 方法发送带有 forward()的邮件,我想删除,来自州商店的消息。 在处理器中,我用

创建了状态存储

StoreBuilder<KeyValueStore<byte[], String>> storeBuilder = Stores.keyValueStoreBuilder(Stores.persistentKeyValueStore("message-store"), Serdes.ByteArray(), Serdes.String());

问题是没有发生删除,当我发送另一条带有相同密钥的邮件时,我仍然会在中收到以前的邮件。

代码:

kvStore = (KeyValueStore<byte[], String>) this.context.getStateStore("message-store");

kvStore.delete((byte[]key)

状态存储的putget正常工作。

这种方法有什么问题吗?

0 个答案:

没有答案