Kafka(文件)数据存储、清理机制、高性能设计

  1. Kafka文件的存储机制

主题 topic - 分区 partition - 分段 segment

每一段有三个文件:

① .index 索引文件

② .log 数据文件

③ .timeindex 时间索引文件

  1. 分段的意义

① 删除无用文件更加方便,提高磁盘的利用率

② 查找数据便捷

  1. 数据清理机制

3.1 根据消息的保留时间,当Kafka中保存的时间超过了指定的时间,就会触发清理过程。

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

  1. Kafka 高性能设计

4.1 消息分区: 不受单台服务器的限制,可以不受限的处理更多的数据

4.2 顺序读写: 磁盘顺序读写,提升读写效率(相对于数据随机存放、随机读写而言)

4.3 页缓存(Linux系统): 把磁盘中的数据缓存到内存中,把对磁盘的访问改变为对内存的访问

4.4 零拷贝: 减少上下文切换机数据copy

4.5 消息压缩: 减少磁盘IO和网络IO,但是压缩过程耗费CPU

4.6 分批法送: 将消息打包批量发送,减少网络开销

相关推荐
Devin~Y2 小时前
高并发电商与AI智能客服场景下的Java面试实战:从Spring Boot到RAG与向量数据库落地
java·spring boot·redis·elasticsearch·spring cloud·kafka·rag
小白学大数据5 小时前
Scrapy 分布式爬虫:大规模采集汽车之家电车评论
开发语言·分布式·爬虫·scrapy
仗剑_走天涯5 小时前
hadoop reduce阶段 对象重用问题
大数据·hadoop·分布式
电磁脑机6 小时前
无总线场同步:意识本质、AGI困境与脑机革命的核心理论重构
分布式·神经网络·架构·信号处理·agi
半桶水专家6 小时前
kafka数据删除策略详解
分布式·kafka
一个有温度的技术博主6 小时前
Lua语法进阶:函数封装与条件控制的艺术
redis·分布式·缓存·lua
无心水6 小时前
2、5分钟上手|PyPDF2 快速提取PDF文本
java·linux·分布式·后端·python·架构·pdf
Jackyzhe6 小时前
从零学习Kafka:位移与高水位
分布式·学习·kafka
roman_日积跬步-终至千里7 小时前
【系统架构师-案例题-分布式数据缓存架构】22年下(3)分布式仓储货物管理系统
分布式·缓存·系统架构
鬼先生_sir7 小时前
SpringCloud-Stream + RocketMQ/Kafka
spring cloud·kafka·rocketmq·stream