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 分批法送: 将消息打包批量发送,减少网络开销

相关推荐
哈哈哈笑什么1 小时前
在高并发分布式SpringCloud系统中,什么时候时候并行查询,提高查询接口效率,从10s到100ms
java·分布式·后端
阿杰同学4 小时前
Hadoop 面试题及答案整理,最新面试题
大数据·hadoop·分布式
听风吟丶4 小时前
微服务分布式事务实战:从数据一致性到故障恢复全方案
分布式·微服务·架构
ClouGence5 小时前
从 0 到 1 构建 TDSQL MySQL 实时同步链路
数据库·分布式·sql·mysql
技术破壁人5 小时前
Kafka 的自动提交机制详解:Spring Boot 中如何正确使用?
kafka
哈哈哈笑什么5 小时前
完整Redis分布式锁技术方案(基于Redisson)
redis·分布式·spring cloud
树下水月6 小时前
kafka的topic积压的问题汇总
分布式·kafka
山南有清风6 小时前
开源对象存储项目一览
linux·分布式·对象存储·存储
豫狮恒6 小时前
OpenHarmony Flutter 分布式设备发现与组网:跨设备无感连接与动态组网方案
分布式·flutter·wpf·openharmony
周杰伦_Jay7 小时前
【JVM深度解析】运行时数据区+类加载+GC+调优实战(附参数示例)
java·jvm·spring boot·分布式·架构·java-ee