关于rocketmq使用mmap不使用sendfile的问题
来源:2-2 RocketMQ整体认知

index2
2020-08-27
老师,我在学rocketmq中关于零拷贝的地方遇到了一些疑问,如果您能帮我解惑一下是最好了!我查阅百度的相关资料,rocketmq中关于零拷贝使用的是linux系统中的mmap技术,而kafka对于零拷贝的技术实现是sendfile。我刚开始比较好奇为什么rocketmq为什么不使用和kafka一样的sendfile,百度后得出的答案是,相对于sendfile的大容量传输,mmap的小容量传输更适合rocketmq,而rocketmq由于是用java开发的,大对象会对jvm的垃圾回收机制有一定影响,故选择了mmap。所以,我的问题是为什么mmap传输的容量比sendfile小,我百度了一些资料,没有得到满意的答案,如果老师有思路的话,就太好了!
写回答
1回答
-
mmap,和sendfile,本质上差不多,所以选择那种都无可厚非。mmap适合的场景,sendfile也都差不多,至于rmq为什么选择mmap,个人觉得更方便做内存处理操作
另外这种细节没必要太多关注,具体如何发送的消息我个人理解都可以012020-09-18
相似问题