KafkaStreams如何确定自举时GlobalKTable是否已完全填充?

Tim*_*aer 1 apache-kafka-streams

我用来创建GlobalKTable的主题非常活跃。在KStream-GlobalKTable连接的文档中,我阅读了

GlobalKTable是在完全自举(重)启动的KafkaStreams情况下,这意味着表是用下面的话题,可在启动时中的所有数据完全填充。仅在引导完成后才开始实际的数据处理。

KafkaStreams如何确定是否读取了所有数据?它是否读取所有时间戳低于KafkaStreams实例引导时间的消息?还是使用某种超时?

无论哪种方式,我都认为我们最好正确保留基础主题的保留日志压缩,否则重新启动可能需要一段时间。

Mat*_*Sax 6

启动时,Kafka Streams读取当前的日志结束偏移,并在所有这些数据加载后完成引导(参见KIP-99)。

注意,GlobalKTable设计时要考虑静态/很少更改的数据。

无论哪种方式,我都认为我们最好正确保留基础主题的保留和日志压缩,否则重新启动可能需要一段时间。

GlobalKTable 检查点从0.11开始(今天发布),因此重新引导时的引导应该比0.10.2中的引导点快得多。