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

时间:2019-11-08 09:22:54

标签: apache-kafka apache-kafka-streams

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

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

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

1 个答案:

答案 0 :(得分:5)

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

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

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

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

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