消息 面试题

发布时间 2024-01-11 18:11:54作者: 好好学习一天天向上

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Kafka 零拷贝

        Linux 2.1版本内核引入了sendfile函数,用于将文件通过socket传送“零拷贝技术”只用将磁盘文件的数据复制到页面缓存中一次,然后将数据从页面缓存直接发送到网络中(发送给不同的订阅者时,都可以使用同一个页面缓存),避免了重复复制操作。

  如果有10个消费者,传统方式下,数据复制次数为4*10=40次,而使用“零拷贝技术”只需要1+10=11次,一次为从磁盘复制到页面缓存,10次表示10个消费者各自读取一次页面缓存。

 

 

零拷贝并不是不需要拷贝,而是减少不必要的拷贝次数。