请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于Kafka零拷贝的疑问

老师好,这是我在网上看到的,不知道说的对不对?

  1. partition顺序读写,充分利用磁盘特性,这是基础;
  2. Producer生产的数据持久化到broker,采用mmap文件映射,实现顺序的快速写入;
  3. Customer从broker读取数据,采用sendfile,将磁盘文件读到OS内核缓冲区后,直接转到socket buffer进行网络发送。

下面是我的疑问

  1. 顺序读写之所以快是因为减少了磁盘寻道时间,但是,如果在kafka多次写之间有其它线程调用了写操作呢?那为了防止这种操作只能是一个磁盘只能给Kafka一个进程使用吗?
  2. 我了解的是sendfile比mmap少一些上下文切换,那么为什么Producer生产数据时不使用sendfile方式?是因为生产数据最终要落到磁盘上,而落到磁盘就需要一次刷盘操作,而mmap利用了系统缓冲和磁盘映射的方式节省了一次刷盘操作,所以生产消息使用mmap,这个理解对吗?

正在回答

1回答

同学你好:

    你在网络上看到的那三个描述是正确的。不过,你的两个问题,我是真的没有细研究过;另外,我也不建议你花很多时间在这样的问题上面,原因有两个:

    (1)对于这么底层细节的知识点,大概率是用不到的,所以,没必要细看;

    (2)即使是面试,也不太可能会问到这样的问题

    当然,如果你还是有兴趣的话,可以查查相关的资料说明。

2 回复 有任何疑惑可以回复我~
  • 提问者 hllcve #1
    好的,谢谢老师,老师效率真是太高了,问的问题都是当天就答复!
    回复 有任何疑惑可以回复我~ 2021-08-05 20:45:06
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号