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

相关推荐
凯子坚持 c30 分钟前
CANN 生态中的分布式训练利器:深入 `collective-ops` 项目实现高效多卡协同
分布式
岁岁种桃花儿41 分钟前
Kafka从入门到上天系列第一篇:kafka的安装和启动
大数据·中间件·kafka
惊讶的猫2 小时前
rabbitmq实践小案例
分布式·rabbitmq
禁默3 小时前
打破集群通信“内存墙”:手把手教你用 CANN SHMEM 重构 AIGC 分布式算子
分布式·重构·aigc
惊讶的猫4 小时前
rabbitmq初步介绍
分布式·rabbitmq
小镇敲码人4 小时前
华为CANN框架中HCCL仓库的全面解析:分布式通信的引擎
分布式·华为
User_芊芊君子5 小时前
【分布式训练】CANN SHMEM跨设备内存通信库:构建高效多机多卡训练的关键组件
分布式·深度学习·神经网络·wpf
酷酷的崽7985 小时前
CANN 开源生态解析(四):`cann-dist-train` —— 构建高效可扩展的分布式训练引擎
分布式·开源
惊讶的猫6 小时前
AMQP 与 RabbitMQ 四大模型
分布式·rabbitmq
灰子学技术6 小时前
istio从0到1:如何解决分布式配置同步问题
分布式·云原生·istio