我正在使用StreamsBuilder的API来构建GlobalKTable,如下所示:
Materialized<Long, Category, KeyValueStore<Bytes, byte[]>> materialized =
Materialized.<Long, Category, KeyValueStore<Bytes, byte[]>>as(this.categoryStoreName)
.withCachingDisabled()
.withKeySerde(Serdes.Long())
.withValueSerde(CATEGORY_JSON_SERDE);
return streamsBuilder.globalTable(categoryTopic, materialized);
我希望通过更改来通知我。它很少更新,如果有更新,我想触发缓存失效。卡夫卡这样做的方式是什么?
答案 0 :(得分:3)
GlobalKTable不支持此功能。但是,您可以使用“全局商店”并实现为每次更新调用的自定义Processor
。
在内部,GlobalKTable
使用“全局商店”并为您提供Processor
实施。
您可以通过StreamsBuilder#addGlobalStore()
添加全局商店。