Kafka快速高效的原因
因为kafka高吞吐量,管道大,而保证kafka快速移动大量数据的设计决策有 顺序I/O 和 零拷贝复制原则
顺序I/O:
通过使用仅附加日志作为主要数据结构,将新数据添加到文件末尾
顺序I/O的优势在于相比随机读取,他的读取速度更快
零拷贝复制原则:
不使用零拷贝复制的情况下,磁盘上的一页数据发送给消费者,需要创建4个副本和2个系统调用
而采用零拷贝复制的话,只需要创建1个副本
采用零拷贝复制原则,程序调用系统sendfile(),直接将数据从操作系统缓存复制到网卡缓冲区,复制通过DMA(直接内存存取)完成,CPU不参与,所以更加高效。
视频学习记录:https://www.youtube.com/watch?v=UNUz1-msbOM&ab_channel=ByteByteGo