据我所知,Kafka在默认情况下会将主题中的记录保留7天,然后将其删除。但是Kafka的物化视图呢,Kafka将把数据保存在那里多久(无限或有限的时间)?另外,kafka是否复制集群上的物化视图?
zujrkrfu1#
kafka主题可以配置保留时间,也可以配置日志压缩。对于日志压缩,每个键的最新记录将永远不会被删除,而具有相同键的旧记录将定期被垃圾收集。看到了吗https://kafka.apache.org/documentation/#compaction当Kafka创造了一个 KTable 或状态存储,并创建一个用于容错的变更日志主题,它将在启用日志压缩的情况下创建此变更日志主题。注意:如果你直接把一个主题作为 KTable 或者 GlobalKTable (即, builder.table(...) ),将不创建其他更改日志主题,但源主题将用于此目的。因此,源主题应该配置为日志压缩(而不是保留时间)。您可以使用配置所需的复制因子 StreamConfig 参数 repliaction.factor . 如果愿意,您也可以随时手动更改复制因子,例如,通过 bin/kafka-topics.sh 命令。
KTable
GlobalKTable
builder.table(...)
StreamConfig
repliaction.factor
bin/kafka-topics.sh
1条答案
按热度按时间zujrkrfu1#
kafka主题可以配置保留时间,也可以配置日志压缩。对于日志压缩,每个键的最新记录将永远不会被删除,而具有相同键的旧记录将定期被垃圾收集。看到了吗https://kafka.apache.org/documentation/#compaction
当Kafka创造了一个
KTable
或状态存储,并创建一个用于容错的变更日志主题,它将在启用日志压缩的情况下创建此变更日志主题。注意:如果你直接把一个主题作为
KTable
或者GlobalKTable
(即,builder.table(...)
),将不创建其他更改日志主题,但源主题将用于此目的。因此,源主题应该配置为日志压缩(而不是保留时间)。您可以使用配置所需的复制因子
StreamConfig
参数repliaction.factor
. 如果愿意,您也可以随时手动更改复制因子,例如,通过bin/kafka-topics.sh
命令。