贝壳三面:RocketMQ和KAFKA的零拷贝有什么区别?

Java教程 2025-09-04

文章内容收录到个人网站,方便阅读:hardyfish.top/

mmap + write

mmap

传统 I/O 数据拷贝过程(四次拷贝):

基于 mmap 实现的拷贝过程(三次拷贝):

mmap 优势:

mmap 的缺点:

sendfile

基于 sendfile 实现的拷贝过程(两次拷贝):

sendfile 优势:

sendfile 的缺点:

性能对比:CPU 拷贝与 DMA 拷贝

为什么 RocketMQ 选择 mmap

为什么 Kafka 选择 sendfile

总结