1. 顺序写磁盘
Kafka的producer生产数据,要写入到log文件中,写的过程是一直追加到文件末端,为顺序写。官网有数据表明,同样的磁
盘,顺序写能到600M/s,而随机写只有100K/s。这与磁盘的机械机构有关,顺序写之所以快,是因为其省去了大量磁头寻址的
时间。
2. 分段日志 + 索引文件
分段日志是通过数据的偏移量进行存储,索引文件是能快速定位所要查询数据的位置
1、Kafka把topic中一个parition大文件分成多个小文件段,通过多个小文件段,就容易定期清除或删除已经消费完文件,
减少磁盘占用。
2、通过索引信息可以快速定位message和确定response的最大大小。
3、通过index元数据全部映射到memory,可以避免segment file的IO磁盘操作。
4、通过索引文件稀疏存储,可以大幅降低index文件元数据占用空间大小。
3. 零拷贝
如下图所示是普通Java读取复制文件的一个流程


最低0.47元/天 解锁文章
1968

被折叠的 条评论
为什么被折叠?



