KTable中的数据存储多长时间?

pan*_*oet 1 apache-kafka apache-kafka-streams

作为参考,轮廓的流更新存储在KTable对象。

  1. 此数据将在KTable对象中存储多长时间?
  2. 假设我们运行应用程序的多个实例。而且,实例崩溃。KTable数据属于那个实例怎么样?它会被另一个实例“恢复”吗?

我正在考虑存储很少更新的数据更新。因此,如果一个实例崩溃并且另一个实例将再次从头开始构建那些数据,则它们可能再也无法获取这些数据了。因为它们再也不会流式传输,或者说的很简单,所以很少。

cri*_*007 5

KTable有一个主题作为后盾,因此它将确定其保留+清除策略是什么。

如果清除策略为compact,则每个唯一密钥都将“永久”存储,或者直到代理空间用完为止(以较早者为准)。

如果运行多个实例,则每个KTable将从其使用的分区中保留一部分数据,每个表将不具有所有数据。

如果任何实例崩溃,它将需要从其changelog主题的开头读取所有数据,但是您可以配置备用副本以解决该情况

有关更多信息,访问https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Streams+Internal+Data+Management