我当前的代码使用InMemoryKeyValueStore,它避免了对磁盘的任何持久性。我想使用Stores#persistentKeyValueStore。我当前的代码如下:
static StoreBuilder<KeyValueStore<String, LinkedList<StoreItem>>> makeStoreBuilder(
final String storeKey,
final Serde<LinkedList<StoreItem>> valueSerde,
final boolean loggingDisabled) {
final StoreBuilder<KeyValueStore<String, LinkedList<StoreItem>>> storeBuilder =
Stores.keyValueStoreBuilder(Stores.inMemoryKeyValueStore(storeKey), Serdes.String(), valueSerde);
return storeBuilder;
}
要让我使用Stores#persistentKeyValueStore,我是否可以像这样更改调用:
final StoreBuilder<KeyValueStore<String, LinkedList<StoreItem>>> storeBuilder =
Stores.keyValueStoreBuilder(Stores.persistentKeyValueStore(storeKey), Serdes.String(), valueSerde);
我是否可以知道这是否是更改此问题的正确方法,是否会产生任何影响?我是Kafka和Streams API的新手,希望能获得一些见解。
谢谢。
答案 0 :(得分:1)
是的,使用Stores.persistentKeyValueStore(topicName)将状态持久化到磁盘。请确保:
我看到您已禁用日志记录,这是故意进行的吗?