是否可以在Kafka Streaming中向商店添加值,我想做的是,如果主题中出现另一条具有相同ID的消息,那么我会将消息作为值添加到列表中>
类似的东西:
ID为1的第一次流迭代
ID | Messages
1 | [1]
ID 1的第二次流迭代,然后更新密钥1的值
ID | Messages
1 | [1,2]
以下内容正常工作,但是我现在需要将自定义对象发送到主题中,然后追加到列表中,但是我无法将自定义Message对象添加到ArrayList中
KStream<String, String> textLines = builder.stream("processed-conv");
KTable<String, ArrayList<String>> conversations1 = textLines
.groupBy((key, message) -> message)
.aggregate( ArrayList<String>::new,
(k, v, a) -> {
a.add(v);
return a;
}, myStateStoreProvider );
//then I am able to query the store later with the below
ReadOnlyKeyValueStore<String, ArrayList<String>> keyValueStore =
streams.store("StateStore2", QueryableStoreTypes.keyValueStore());
KeyValueIterator<String, ArrayList<String>> storeIterator = keyValueStore.all();
while (storeIterator.hasNext()) {
KeyValue<String, ArrayList<String>> next = storeIterator.next();
System.out.println("messages for " + next.key + ": " + next.value);
}