我有T
一个消息过期retention.ms
设置为 2 天的主题。主题有压缩。
如果我将该消息读入 a KStream
,然后进一步聚合到 a KTable
,那么KStream
和/或是否会KTable
兑现 2 天到期?当消息不再在主题T
中时,消息是否也会从主题中删除KStream
或KTable
自动删除?或者是否需要一些内务处理过程来墓碑这些消息?
我有T
一个消息过期retention.ms
设置为 2 天的主题。主题有压缩。
如果我将该消息读入 a KStream
,然后进一步聚合到 a KTable
,那么KStream
和/或是否会KTable
兑现 2 天到期?当消息不再在主题T
中时,消息是否也会从主题中删除KStream
或KTable
自动删除?或者是否需要一些内务处理过程来墓碑这些消息?
delete.retention.ms
,主题的“脏比”(min.cleanable.dirty.ratio
),最小/最大压缩滞后等都是控制压缩前密钥保留时间的属性
是的,流/表应该自动更新,但是您可能在更改日志主题或状态存储的其他地方存储了数据残余,因为它们存储在原始主题之外
关于第一个属性...(来自文档)
如果消费者从偏移量 0 开始以确保他们获得最终阶段的有效快照(否则可能在完成扫描之前收集删除墓碑),则给出消费者必须完成读取的时间界限。
因此,一个时间滞后小于 的流/表delete.retention.ms
,那么你应该期望它正在消耗墓碑记录,如果它运行的时间超过这个时间,那么它会有可能已经被删除的数据