Kafka 将数据持久化到了硬盘上,允许你配置一定的策略对数据清理,清理的策略有两个,删除和压缩。

1> 删除 :

# 启用删除策略
log.cleanup.policy=delete

直接删除,删除后的消息不可恢复。可配置以下两个策略 :

# 清理超过指定时间清理
log.retention.hours=16
# 超过指定大小后,删除旧的消息
log.retention.bytes=1073741824

为了避免在删除时阻塞读操作,采用 copy-on-write 形式的实现,删除操作进行时,读取操作的二分查找功能实际是在一个静态的快照副本上进行的,这类似于Java的CopyOnWriteArrayList。

2> 压缩 :
将数据压缩,只保留每个key最后一个版本的数据。
首先在 broker 的配置中设置 log.cleaner.enable=true 启用cleaner,这个默认是关闭的。
在 topic 的配置中设置 log.cleanup.policy=compact 启用压缩策略。

压缩策略的细节 :

如上图,在整个数据流中,每个Key都有可能出现多次,压缩时将根据Key将消息聚合,只保留最后一次出现时的数据。这样,无论什么时候消费消息,都能拿到每个Key的最新版本的数据。
压缩后的offset可能是不连续的,比如上图中没有5和7,因为这些offset的消息被merge了,当从这些offset消费消息时,将会拿到比这个offset大的offset对应的消息,比如,当试图获取offset为5的消息时,实际上会拿到offset为6的消息,并从这个位置开始消费。
这种策略只适合特俗场景,比如消息的key是用户ID,消息体是用户的资料,通过这种压缩策略,整个消息集里就保存了所有用户最新的资料。
压缩策略支持删除,当某个Key的最新版本的消息没有内容时,这个Key将被删除,这也符合以上逻辑。

Kafka 过期数据清理 详解相关推荐

  1. kafka安装部署详解

    kafka安装部署详解 1. zookeeper安装部署 1.1 zookeeper下载 1.2 zookeeper配置启动 1.3 zookeeper验证 2. kafka安装部署 2.1 kafk ...

  2. Kafka事务特性详解

    Kafka在0.11版本中除了引入了Exactly Once语义,还引入了事务特性.Kafka事务特性是指一系列的生产者生产消息和消费者提交偏移量的操作在一个事务中,或者说是一个原子操作,生产消息和提 ...

  3. kafka 同步提交 异步_详解Kafka设计架构核心——Kafka副本机制详解

    所谓的副本机制(Replication),也可以称之为备份机制,通常是指分布式系统在多台网络互联的机器上保存有相同的数据拷贝.副本机制有什么好处呢? 1. 提供数据冗余.即使系统部分组件失效,系统依然 ...

  4. Kafka参数brokerid详解

    原 Kafka参数broker.id详解https://blog.csdn.net/u013256816/article/details/80546337版权声明:本文为博主原创文章,未经博主朱小厮允 ...

  5. Kafka数据存储详解

    1.存储格式概述 每一个partion(文件夹)相当于一个巨型文件被平均分配到多个大小相等segment(段)数据文件里.但每一个段segment file消息数量不一定相等,这样的特性方便old s ...

  6. 流式计算新贵Kafka Stream设计详解--转

    原文地址:https://mp.weixin.qq.com/s?__biz=MzA5NzkxMzg1Nw==&mid=2653162822&idx=1&sn=8c4611436 ...

  7. Flume与Kafka整合案例详解

    环境配置 名称 版本 下载地址 Centos 7.0 64x 百度 Zookeeper 3.4.5   Flume 1.6.0   Kafka 2.1.0   flume笔记 直接贴配置文件 [roo ...

  8. kafka分区机制详解

    本文来说下SpringBoot整合kafka之kafka分区实战 文章目录 kafka分区机制 分区个数选择 分区写入策略 轮询策略 随机策略 按键保存策略 本文小结 kafka分区机制 分区机制是k ...

  9. kafka sink mysql,kafka之七 sinkTask详解

    使用kafka connector 功能实现一个数据从kafka到MySQL的sinkTask 一:实现JdbcSinkConnector类 public class JdbcSinkConnecto ...

  10. Kafka offset 偏移量详解

    1 背景 Kafka是Consumer去拉Broker 中的数据,但是数据从何处开始拉是一个技术问题 为了解决这个问题场景,所以Kafka推出了偏移量的概念 2 offset 偏移量是什么 2.1 基 ...

最新文章

  1. 初次体验hiphop-php
  2. 静态布局、自适应布局、流式布局、响应式布局、弹性布局简析、BFC
  3. 【视频课】一课彻底掌握深度学习人脸图像算法,长期更新
  4. stl list 删除元素_删除所有出现的元素,并从列表中删除一些特定的元素。 C ++ STL...
  5. Hibernate Query 的 list 和iterate方法缓存的区别
  6. Qt工作笔记-对QItemDelegate自定义委托的理解
  7. 自动驾驶汽车自主决策与规划技术(一):里程定位于全局定位简介
  8. python使用新的有序序列重新替换原有的值
  9. 180多个web和desktop测试用例清单
  10. linux中忘记mysql用户root密码解决方案
  11. python列表内元素求和_Python之list对应元素求和
  12. 当你的服务器被黑了,一定要看是不是犯了这 5 点错误
  13. JAVA Web基础3-Servlet
  14. 51单片机 wifi模块代码编写的历程 esp8266
  15. Cadence PSpice 仿真9:低通滤波器蒙特卡洛分析仿真实战图文教程
  16. linux下查看U盘文件
  17. 银行那些事儿--银行会计
  18. 机器学习笔记之R语言基础5(T,F检验)
  19. LaText Error:Environment aligned undefined.
  20. 增加表空间数据文件语句

热门文章

  1. ra8873 ST7789区别
  2. 微信小程序云开发如何修改后台手动添加的数据
  3. 计算机软考软件设计师知识点:软件可行性研究报告
  4. PGP验证数字签名原理
  5. python傅里叶变换相位谱图_图像傅里叶变换的幅度谱、相位谱以及双谱重构原图像...
  6. 储存管理系统c语言,《C语言,图书管理系统,未做文件储存系统.docx
  7. Tera Term宏语言介绍
  8. 算法4-中兴捧月杯热身赛1素数判断-热身赛2亲和串-热身赛3旅游路线-
  9. kindle亚马逊个人文档不显示_Kindle的PC版如何看个人文档
  10. amazeui PHP,amazeui页面分析之登录页面