在Kafka Stream WordCount
示例中,它使用StateStore
来存储字数。如果同一个使用者组中有多个实例,那么StateStore
对于该组是全局的,或者只是消费者实例的本地实例?
Thnaks
这取决于您对州商店的看法。
请记住,更改日志是应用程序状态的真实情况,而本地存储基本上是状态分片的缓存。
此外,在WordCount示例中,记录流(数据流)通过单词进行分区,使得一个单词的计数将由单个实例维护(并且不同的实例保持不同单词的计数)。
对于建筑概述,我推荐http://docs.confluent.io/current/streams/architecture.html
此博客文章也应该是有趣的http://www.confluent.io/blog/unifying-stream-processing-and-interactive-queries-in-apache-kafka/
如果值得一提的是有一个GlobalKTable improvement proposal
每个KafkaStreams实例将完全复制GlobalKTable一次。也就是说,每个KafkaStreams实例将使用相应主题的所有分区。
从Confluent Platform的邮件列表中,我获得了这些信息
您可以使用Kafka 0.10.2(或主干)分支开始原型设计...
0.10.2-rc0已经有了GlobalKTable!
这是actual PR。
那个告诉我的人是Matthias J. Sax;)