总的来说Kafka快的原因:1、partition顺序读写,充分利用磁盘特性,这是基础;2、Producer生产的数据持久化到broker,采用mmap文件映射,实现顺序的快速写入;3、Customer从broker读取数据,采用sendfile,将磁盘文件读到OS内核缓冲区后,直接转到socket buffer进行网络发送。mmap 和 sendfile总结1、都是Linux内核提供、实现零拷贝的API;2、sendfile 是将读到内核空间的数据,转到socket buffer,进行网络发送;3、mmap将磁盘文件映射到内存,支持读和写,对内存的操作会反映在磁盘文件上。RocketMQ 在消费消息时,使用了 mmap。kafka 使用了 sendFile。
Kafka零拷贝总结
最新推荐文章于 2024-07-18 09:40:53 发布