KTable中的数据保存了多长时间?

How long is the data in KTable stored?

This 作为参考,存储在 KTable 对象中的配置文件更新流。

  1. 此数据将在 KTable 对象中存储多长时间?
  2. 假设我们 运行 应用程序的多个实例。不知何故,一个实例崩溃了。 KTable 数据属于那个实例怎么样?会不会被另一个实例"recovered"?

我正在考虑存储很少更新的数据更新。因此,如果一个实例崩溃并且另一个实例将再次从头开始构建这些数据,则它们可能永远不会再次获得这些数据。因为他们再也没有被流过,或者简单地说,很少。

KTable 由主题支持,因此它将确定其保留+清理策略是什么。

如果清理策略是 compact,则每个唯一键都会被存储 "forever",或者直到代理 运行s 超出 space,以较早者为准。

如果您 运行 多个实例,那么每个 KTable 将保存它所使用的分区的数据子集,每个 table 将不会拥有所有数据。

如果任何实例崩溃,它将需要从其更新日志主题的开头读取所有数据,但您可以配置备用副本以应对该情况

更多信息请见 https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Streams+Internal+Data+Management