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

相关推荐
问道飞鱼1 分钟前
【工具知识】在 Spring Boot 项目中结合 IntelliJ IDEA 实现不同环境配置文件选择
java·spring boot·intellij-idea·多环境
是阿威啊3 分钟前
【第一站】本地虚拟机部署Hadoop分布式集群
大数据·linux·hadoop·分布式
java坤坤11 分钟前
Elasticsearch Java实战手册:搭建、条件构建与分页优化
java·elasticsearch
小梁努力敲代码24 分钟前
Java多线程--单例模式
java·开发语言
老华带你飞36 分钟前
学生宿舍管理|基于java + vue学生宿舍管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
Filotimo_44 分钟前
在java后端开发中,redis的用处
java·开发语言·redis
lkbhua莱克瓦241 小时前
TCP通信练习4-上传文件名重复问题
java·网络·网络协议·tcp/ip·tcp
INGg__1 小时前
Java面试现场:从简单到复杂
java·面试·技术
毕设源码-赖学姐1 小时前
【开题答辩全过程】以 高校图书馆座位预约管理系统为例,包含答辩的问题和答案
java·spring boot
网安_秋刀鱼1 小时前
【java安全】java安全基础
java·开发语言·安全·web安全