Apache Kafka Streams: как перейти от использования хранилища значений ключей в памяти к сохранению значений ключей ключей? - PullRequest
0 голосов
/ 10 июня 2019

Мой текущий код использует 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;
    }

Для меня, чтобы использовать магазины # persistentKeyValueStore, могу ли я просто изменить вызов так:

final StoreBuilder<KeyValueStore<String, LinkedList<StoreItem>>> storeBuilder =
                Stores.keyValueStoreBuilder(Stores.persistentKeyValueStore(storeKey), Serdes.String(), valueSerde);

Могу ли я знать, правильно ли этоспособ изменить это, и если это будет иметь какие-либо последствия?Я очень новичок в Kafka и Streams API и был бы признателен за понимание.

Спасибо.

1 Ответ

1 голос
/ 10 июня 2019

Да, использование Stores.persistentKeyValueStore (topicName) сохранит состояние на диске.Пожалуйста, убедитесь:

  • , что у вас есть достаточно места на диске
  • установите соответствующий срок хранения данных

Я вижу, что вы отключили ведение журнала,это сделано намеренно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...