我很好奇kafka是如何使用linux页面缓存来加速消息的呢?
说生产者A发送消息mA,所以kafka决定将其附加到文件fA,所以kafka会调用save API,然后mA从kafka内存转到系统缓冲区,然后复制到页面缓存,或直接复制到页面缓存?
然后一个消费者B需要读取消息mA,kafka计算并判断mA是否在文件fA中,所以它调用read,其中linux将消息从页面缓存复制到系统缓冲区,然后复制到kafka内存缓冲区,然后kafka调用网络发送,将kafka内存缓冲区复制到系统缓冲区,然后将其发送给网卡驱动程序。 我是对的吗?但还有很多额外的副本。