消息中间件篇之Kafka-数据清理机制

一、Kafka文件存储机制

Kafka文件存储结构:一个Topic有多个分区。每一个分区都有多个段,每个段都有三个文件。

为什么要分段?1. 删除无用文件方便,提高磁盘利用率。 2. 查找数据便捷。

二、数据清理机制

1.日志的清理策略方案1

根据消息的保留时间,当消息在kafka中保存的时间超过了指定的时间,就会触发清理过程。默认是168小时。

2.日志的清理策略方案2

根据topic存储的数据大小,当topic所占的日志文件大小大于一定的阈值,则开始删除最久的消息。需手动开启。

三、面试题

面试官:Kafka数据清理机制了解过嘛?

候选人:Kafka中topic的数据存储在分区上,分区如果文件过大会分段存储segment,每个分段都在磁盘上以索引(xxxx.index)和日志文件(xxxx.log)的形式存储,这样分段的好处是,第一能够减少单个文件内容的大小,查找数据方便,第二方便kafka进行日志清理。

在kafka中提供了两个日志的清理策略:

第一,根据消息的保留时间,当消息保存的时间超过了指定的时间,就会触发清理,默认是168小时( 7天)。

第二是根据topic存储的数据大小,当topic所占的日志文件大小大于一定的阈值,则开始删除最久的消息。这个默认是关闭的。

这两个策略都可以通过kafka的broker中的配置文件进行设置。

相关推荐
2501_9418705612 分钟前
从配置频繁变动到动态配置体系落地的互联网系统工程实践随笔与多语言语法思考
java·前端·python
Sailing32 分钟前
AI 流式对话该怎么做?SSE、fetch、axios 一次讲清楚
前端·javascript·面试
她说..42 分钟前
Spring 核心工具类 AopUtils 超详细全解
java·后端·spring·springboot·spring aop
无限大643 分钟前
为什么"缓存"能提高系统性能?——从 CPU 缓存到分布式缓存
后端·面试
TH_11 小时前
33、IDEA无法获取最新分支
java·ide·intellij-idea
极客先躯1 小时前
Java Agent 技术全解析:从基础框架到落地实践
java·开发语言
yaso_zhang1 小时前
linux 下sudo运行程序,链接找不到问题处理
java·linux·服务器
帅气的你1 小时前
终于解决了!Spring Boot 启动慢的 5 个优化点
java
Croa-vo1 小时前
Optiver OA 气球节模拟题:拆解系统建模的核心逻辑,附避坑指南
java·数据结构·算法·leetcode·职场和发展
悟能不能悟1 小时前
Java CheckFailedException会去获取message.properties的内容吗
java·开发语言