如何以避免重新创建状态存储的方式重新启动KafkaStreams拓扑

时间:2018-01-18 06:48:17

标签: apache-kafka apache-kafka-streams

我用KafkaStreams DSL和处理器api编写了一些代码来实时计算:

  KStreamBuilder builder = new KStreamBuilder();
  KStream<String, String> logs = builder.stream(stringSerde, stringSerde, ADDCASH_TOPIC_NAME);

  StateStoreSupplier countStore = Stores.create("Counts")
            .withKeys(Serdes.String())
            .withValues(Serdes.Long())
            .persistent()
            .build();

 logs.process(() -> new AddCashProcessor(), countStore.name());

我想知道:当我重新启动拓扑时,如果Stores.create(..)方法将重新创建StateStore?

1 个答案:

答案 0 :(得分:1)

如果没有,它将重用现有状态并仅创建和清空/新存储。