漫游Kafka之过期数据清理
2019独角兽企业重金招聘Python工程师标准>>>
Kafka将数据持久化到了硬盘上,允许你配置一定的策略对数据清理,清理的策略有两个,删除和压缩。
数据清理的方式
删除
log.cleanup.policy=delete启用删除策略
直接删除,删除后的消息不可恢复。可配置以下两个策略:
清理超过指定时间清理:
log.retention.hours=16
超过指定大小后,删除旧的消息:
log.retention.bytes=1073741824
为了避免在删除时阻塞读操作,采用了copy-on-write形式的实现,删除操作进行时,读取操作的二分查找功能实际是在一个静态的快照副本上进行的,这类似于Java的CopyOnWriteArrayList。
压缩
将数据压缩,只保留每个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将被删除,这也符合以上逻辑。
转载于:https://my.oschina.net/sniperLi/blog/807130
漫游Kafka之过期数据清理相关推荐
- kafka:过期数据清理
Kafka 作为一个高吞吐的消息中间件和传统的消息中间件一个很大的不同点就在于它的日志实际上是以日志的方式默认保存在/kafka-logs文件夹中的.虽然默认有7天清楚的机制,但是在数据量大,而磁盘容 ...
- Kafka中数据清理(Log Deletion)
目录 5. Kafka中数据清理(Log Deletion) 5.1 日志删除 5.1.1 定时日志删除任务 5.1.2 基于时间的保留策略 5.1.3 基于日志大小的保留策略 5.1.4 基于日志起 ...
- StarRocks过期数据清理导致磁盘IO飙升调查
StarRocks过期数据清理导致磁盘IO飙升调查 背景 在StarRocks运行过程中,经常看见某一个be节点的磁盘IO忽然飙升几分钟,然后降下来. 调查结果 翻阅了一些日志和源码,找到了原因,记录 ...
- Kafka过期数据清理
最近查看Kafka文档, 发现 Kafka 有个 Log Compaction 功能是我们之前没有留意到的, 但是有着很高的潜在实用价值. 什么是Log Compaction Kafka 中的每一条数 ...
- 【kafka】kafka 消费速度 小于 日志清理速度 (kafka数据被清理了)会发生什么 auto.offset.reset 参数
文章目录 1.概述 2.segment 本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 1.概述 因为遇到了这个问题[Kafka]Kafka Recor ...
- CC00065.kafka——|Hadoopkafka.V50|——|kafka.v50|日志清理|
一.日志压缩策略 ### --- 概念~~~ 日志压缩是Kafka的一种机制,可以提供较为细粒度的记录保留, ~~~ 而不是基于粗粒度的基于时间的保留. ~~~ 对于具有相同的Key,而数据不同,只保 ...
- 漫游Kafka设计篇之性能优化(7)
Kafka在提高效率方面做了很大努力.Kafka的一个主要使用场景是处理网站活动日志,吞吐量是非常大的,每个页面都会产生好多次写操作.读方面,假设每个消息只被消费一次,读的量的也是很大的,Kafka也 ...
- 漫游Kafka实现篇之分布式
原文地址:http://blog.csdn.net/honglei915/article/details/37932819 Zookeeper节点标记 当路径中的元素包括在方括号里比如[xyz],则表 ...
- 漫游Kafka实现篇之消息和日志
原文地址:http://blog.csdn.net/honglei915/article/details/37760631 Kafka视频教程同步首发,欢迎观看! 消息格式 日志 一个叫做" ...
最新文章
- 使用sqlplus工具导出数据到csv文件,要求文件带有时间戳
- 聊聊信号的回勾和过冲(转)
- c++11-explicit
- 这个GitHub 1400星的Git魔法书火了,斯坦福校友出品
- hdu-5703 Desert(水题)
- 纯新手DSP编程--5.29--DSP/BIOS任务管理和后台线程
- 从你王者荣耀爱玩的英雄类型,我就知道你关注哪些技术领域!
- Mac中Homebrew下载指定版本软件的方法
- 百度手机输入法 android ctrl,百度手机输入法旧版本
- java opts xmn_tomcat设置JAVA_OPTS
- LOJ 6070基因 回文树 分块
- 多线程——start()和run()
- 平凡的生活,不平凡的2020
- PNP三极管的一个暗黑技巧
- 计算机软件定时运行,win10系统设置定时运行指定软件的详细方案
- mysql如何数据恢复
- 02 夯实根基,web网页基础
- 微信公众号获取openid(java后端+html实现)
- 国产EDA工具Robei与Quartus ii联合使用(及在Rrobei设计中一些小技巧)
- Apple Store 官方旗舰店
热门文章
- 咖啡html代码,HTML5咖啡生成代码动画
- kubectl 创建pvc_动态挂载云盘(PVC)
- 领地柜怎么砸_在客厅和书房的隔墙上砸洞装个折叠窗,家里亮堂堂!这洞砸得值了...
- android小米计算器布局,小米这8个逆天小功能一定用起来!不会用,手机简直白买...
- mysql log位置_MySql: log 位置
- html5和前端精要(1)-架构与基础(1)
- rust(11)-函数作为返回值和match(类似于switch)
- tensorflow随笔-不动点迭代求一元方程
- 【NLP】使用BERT完成NLP任务
- 【迁移学习】隐私保护下的迁移算法