Kafka-文件管理
Kafka-文件管理
文件管理
保留数据是kafka的一个基本特性,kafaka不会一直保留数据,也不会等到所有消费者都读取了消息之后才删除消息。相反,kafka为每个主题配置了数据保留期限,规定数据被删除之前可以保留多长时间,或者清理数据之前可以保留的数据量大小。
因为在一个大文件里查找和删除消息时很费时的,也很容易出错,所以我们把分区分成若干个片段。默认情况下,每个片段包含1GB(log.segment.bytes)或一周(log.segment.ms)的数据,以较小的那个为准。在broker往分区写入数据时,如果达到片段上限,就关闭当前文件,并打开一个新文件。
当前正在写入数据的片段叫做活跃片段。活动片段永远不会被删除,所以如果要保留数据1天(log.retention.ms),但是片段里包含了5天的数据,那么这些数据会被保留5天,因为在片段被关闭之前,这些数据是无法被删除的。如果要保留数据一周(log.retention.ms设置为7天),并且每天使用一个新片段(log.segment.ms设置为1天),那么就会看到,每天在使用一个新片段的同时会删除一个最老的片段--所以大部分时间该分区会有7个片段存在。
broker会为分区里的每个片段打开一个文件句柄,哪怕片段是不活跃的。这样会导致打开过多的文件句柄,所以操作系统必须根据实际情况做一些调优。
上述相关配置详情:broker常用配置详解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示