Topology streamTopology = new Topology();
streamTopology.addSource("Source1", "Topic1").addSource("Source2", "Topic2")
.addProcessor("Processor1", () -> new TestStreamProcessor1(), "Source1")
.addProcessor("Processor2", () -> new TestStreamProcessor2(), "Source2")
.addStateStore(Stores.keyValueStoreBuilder(Stores.inMemoryKeyValueStore("TestStatestore"),
Serdes.String(), Serdes.String()), "Processor1", "Processor2");
KafkaStreams streams = new KafkaStreams(streamTopology, props);
streams.start();
如果两个主题都有消息,消息处理的顺序是什么,并传递给statestore?
答案 0 :(得分:0)
此案例没有订购保证。 Kafka只保证每个分区的按顺序交付,但不保证跨分区(或跨主题---不同主题中的数据显然位于不同的分区中)。
请注意,使用Processor API,添加商店本身并不足以将数据放入商店。您需要在Processor#process()
中编写代码以将数据放入商店。