面试时,如何区分高手与普通人理解Kafka零拷贝机制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1064个文字,预计阅读时间需要5分钟。
最近一位学者去参加面试,在第二面时遇到了这个问题:请简单说一说Kafka的零拷贝原理。那个学者在大脑里搜索了很久,没有回答上来。今天,我们就来探讨这个问题。
最近一个学员去滴滴面试,在第二面的时候遇到了这个问题:
"请你简单说一下Kafka的零拷贝原理"
然后那个学员努力在大脑里检索了很久,没有回答上来。
那么今天,我们基于这个问题来看看,普通人和高手是如何回答的!
普通人的回答:
零拷贝是一种减少数据拷贝的机制,能够有效提升数据的效率
高手的回答:
在实际应用中,如果我们需要把磁盘中的某个文件内容发送到远程服务器上,如图
那么它必须要经过几个拷贝的过程:
- 从磁盘中读取目标文件内容拷贝到内核缓冲区
- CPU控制器再把内核缓冲区的数据赋值到用户空间的缓冲区中
- 接着在应用程序中,调用
write()方法,把用户空间缓冲区中的数据拷贝到内核下的Socket Buffer中。 - 最后,把在内核模式下的SocketBuffer中的数据赋值到网卡缓冲区(NIC Buffer)
- 网卡缓冲区再把数据传输到目标服务器上。
本文共计1064个文字,预计阅读时间需要5分钟。
最近一位学者去参加面试,在第二面时遇到了这个问题:请简单说一说Kafka的零拷贝原理。那个学者在大脑里搜索了很久,没有回答上来。今天,我们就来探讨这个问题。
最近一个学员去滴滴面试,在第二面的时候遇到了这个问题:
"请你简单说一下Kafka的零拷贝原理"
然后那个学员努力在大脑里检索了很久,没有回答上来。
那么今天,我们基于这个问题来看看,普通人和高手是如何回答的!
普通人的回答:
零拷贝是一种减少数据拷贝的机制,能够有效提升数据的效率
高手的回答:
在实际应用中,如果我们需要把磁盘中的某个文件内容发送到远程服务器上,如图
那么它必须要经过几个拷贝的过程:
- 从磁盘中读取目标文件内容拷贝到内核缓冲区
- CPU控制器再把内核缓冲区的数据赋值到用户空间的缓冲区中
- 接着在应用程序中,调用
write()方法,把用户空间缓冲区中的数据拷贝到内核下的Socket Buffer中。 - 最后,把在内核模式下的SocketBuffer中的数据赋值到网卡缓冲区(NIC Buffer)
- 网卡缓冲区再把数据传输到目标服务器上。

