状态存储分区迭代器?

时间:2018-04-16 13:19:24

标签: apache-kafka-streams

我有一个Kafka-streams变换器,其功能类似于windower:它将状态累积到transform()中的状态存储中,然后在punctuate()期间将其转发到输出主题中,状态存储主题分区键与输入主题相同。 在punctuate()期间,我希望每个StreamThread只迭代自己的状态存储分区,以最大限度地减少从支持kafka主题中读取的数据量。但我能得到的唯一迭代器是

org.apache.kafka.streams.state.ReadOnlyKeyValueStore<K,V>.all()

遍历整个州商店。

有没有办法“分配状态存储的分区”并使punctuate()仅在指定的分区上进行迭代?

1 个答案:

答案 0 :(得分:1)

我想,ReadOnlyKeyValueStore<K,V>.all()可以满足您的需求。请注意,整个状态被分片为多个存储,每个分区有一个分片/存储。 all()不会遍历&#34;其他分片&#34;。 &#34;所有&#34;表示&#34;本地的一切&#34;,即来自单个分区的碎片的所有内容。