据我所知,Kafka默认情况下会将记录保留在主题中7天,然后将其删除。但是卡夫卡物化视图怎么样,卡夫卡将数据保留在那里多长时间(不定或有限的时间)?另外,Kafka是否在集群上复制物化视图?
答案 0 :(得分:2)
可以使用保留时间或日志压缩来配置Kafka主题。对于日志压缩,将永远不会删除每个键的最新记录,而具有相同键的旧记录将定期进行垃圾回收。参见https://kafka.apache.org/documentation/#compaction
当Kafka Streams创建KTable
或状态存储并创建容错的changelog主题时,它将在启用日志压缩的情况下创建此changelog主题。
注意:如果您直接以
KTable
或GlobalKTable
(即builder.table(...)
)的身份阅读主题,则不会创建其他更改日志主题,但是源主题将用于此目的。因此,应该为源主题配置日志压缩(而不是保留时间)。
您可以使用StreamConfig
参数repliaction.factor
配置所需的复制因子。您也可以根据需要随时手动更改复制因子,例如,通过bin/kafka-topics.sh
命令。