1)顺序写磁盘
Kafka 的 producer 生产数据,要写入到 log 文件中,写的过程是一直追加到文件末端,
为顺序写。官网有数据表明,同样的磁盘,顺序写能到 600M/s,而随机写只有 100K/s。这
与磁盘的机械机构有关,顺序写之所以快,是因为其省去了大量磁头寻址的时间。
2)零复制技术
这个0拷贝到底什么意思呢?
假如你本地磁盘某个目录下有一个1.txt文件,要写到2.txt这个文件下,我们学过网络编程我们都知道,我们需要使用 IO流读取1.txt,然后写入2.txt。但是我们的代码是无法直接操作文件的,代码会调用操作系统将文件读到操作系统的kernel space的这块空间,然后读到用户空间,也就是你的代码,通过你的代码又写到操作系统的kernel space这块空间,有操作系统来完成文件的写入 ,我们都知道底层对文件的操作都是c语言来完成的,这种操作是不是比较慢的。
所以就有了0拷贝