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

相关推荐
C澒几秒前
从单体到分布式:SLDS 2.0 全球物流履约网络架构演进之路
前端·分布式·架构·系统架构·教育电商·交通物流
Jack_David2 分钟前
kafka_2.13-4.1.1集群安装
java·分布式·kafka
HAPPY酷3 分钟前
C++ 高性能消息服务器实战:融合线程、异步与回调的三大核心设计
java·服务器·c++
愿你天黑有灯下雨有伞4 分钟前
Spring Boot 整合 Kafka:生产环境标准配置与最佳实践
java·kafka
宁酱醇5 分钟前
ORACLE 练习1
java·开发语言
2501_941982057 分钟前
Python开发:外部群消息自动回复
java·前端·数据库
qinaoaini7 分钟前
Spring中Aware的用法以及实现
java·数据库·spring
康小庄9 分钟前
Java自旋锁与读写锁
java·开发语言·spring boot·python·spring·intellij-idea
沙河板混10 分钟前
@Mapper注解和@MapperScan注解
java·spring boot·spring
知识即是力量ol12 分钟前
口语八股:MySQL 核心原理系列(一):索引篇
java·数据库·mysql·八股·索引·面试技巧