如何获得有关GlobalKTable国家商店更新的通知?

时间:2018-03-26 18:02:29

标签: apache-kafka-streams

我正在使用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);

我希望通过更改来通知我。它很少更新,如果有更新,我想触发缓存失效。卡夫卡这样做的方式是什么?

1 个答案:

答案 0 :(得分:3)

GlobalKTable不支持此功能。但是,您可以使用“全局商店”并实现为每次更新调用的自定义Processor

在内部,GlobalKTable使用“全局商店”并为您提供Processor实施。

您可以通过StreamsBuilder#addGlobalStore()添加全局商店。