kafka 删除策略总结

别看别人表面上事事如意,其实他们背地里,也顺风顺水。

 

目的:数据清除的主要目的是删除过期的消息。过期的消息是指已经被消费者处理过的消息,或者因为某些原因无法被消费者处理的消息,这些消息会占用磁盘空间,导致系统性能下降,所以需要及时的清除。

 

 

清除策略的分类

kafka中清除策略的分类有2种:delete 和 compact

 

delete 日志删除策略:将过期数据删除

配置 log.cleanup.policy = delete  所有数据启用删除策略

  1、基于时间:默认打开,以segment 中所有记录中的最大时间戳作为该文件时间戳。 默认是168H,也就是7天

  2、基于大小:默认关闭,超过设置的所有日志总大小,删除最早的segment文件。

注意:如果一个segment 中有一部分数据过期,一部分没有过期,怎么处理?

  (处理规则:等待获取最新数据时间戳,也就是所有记录中的最大时间戳,作为判断过期的依据,然后进行清除)

 

compact 日志压缩策略:对于相同key的不同value值,只保留最后一个版本

配置 log.cleanup.policy = compact 所有数据启用压缩策略

注:压缩后的offset 可能是不连续的,这种策略只适合特殊场景,比如消息key是用户的ID,value 是用户的资料,通过这种压缩策略,整个消息集保存了所有用户最新的资料。

posted @ 2022-02-26 08:58  方达达  阅读(112)  评论(0编辑  收藏  举报