消息中间件篇之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中的配置文件进行设置。

相关推荐
Q741_1471 分钟前
Linux 进程核心解析 fork()详解 多进程的创建与回收 C++
linux·c++·面试·笔试·进程
Wang's Blog2 分钟前
RabbitMQ: 基于Docker技术实施集群部署实战指南
分布式·docker·rabbitmq
miss_you12136 分钟前
结算模块设计
java
派大鑫wink8 分钟前
【Day1】Java 入门:开发环境搭建(JDK 安装 + IDEA 配置 + HelloWorld 实战)
java·开发语言·intellij-idea
magic_kid_201010 分钟前
IDEA 中 Maven 多模块项目的某个模块未显示或无法导入的解决方案
java·maven·intellij-idea
LSL666_11 分钟前
1 验证码
java·服务器·前端·redis·验证码
wniuniu_12 分钟前
ceph中的crush map
java·运维·ceph
SunnyDays101116 分钟前
Java 实现 RTF 转 Word:完整技术指南
java·rtf转word
博风16 分钟前
飞书知识库备份
java·飞书
晴天sir17 分钟前
关于使用poi-tl读取本地图片,转为base64编码批量插入word的解决方法
java·exception·poi-tl