当前位置: 首页 > wzjs >正文

北京手机网站设计公司wap网站制作教程

北京手机网站设计公司,wap网站制作教程,手机营销网站模板,海南企业seo推广原文网址:RocketMQ--为什么性能不如Kafka?-CSDN博客 简介 本文介绍RocketMQ为什么性能不如Kafka? 阿里中间件团队对它们做过压测,同样条件下,kafka 比 RocketMQ 快 50% 左右。 为什么 RocketMQ 参考了 Kafka 的架构…

原文网址:RocketMQ--为什么性能不如Kafka?-CSDN博客

简介

本文介绍RocketMQ为什么性能不如Kafka?

阿里中间件团队对它们做过压测,同样条件下,kafka 比 RocketMQ 快 50% 左右。

为什么 RocketMQ 参考了 Kafka 的架构,却不能跟 kafka 保持一样的性能呢?

读消息的方式

为了防止消息队列的消息丢失,一般不会放内存里,而是放磁盘上。消息从消息队列的磁盘,发送到消费者,过程是怎样的呢?

传统方式(比如:RabbitMQ)

如果用户想要将数据从磁盘发送到网络。那么就会发生下面这几件事:

程序会发起系统调用read(),尝试读取磁盘数据:

  • 磁盘数据从设备拷贝到内核空间的缓冲区
  • 再从内核空间的缓冲区拷贝到用户空间

程序再发起系统调用write(),将读到的数据发到网络:

  • 数据从用户空间拷贝到 socket 发送缓冲区
  • 再从 socket 发送缓冲区拷贝到网卡

最终数据就会经过网络到达消费者。

整个过程,本机内发生了 2 次系统调用,对应 4 次用户空间和内核空间的切换,以及 4 次数据拷贝

上边传统方式一份数据来回拷贝,有没有办法优化呢?有:零拷贝技术,常见的方案有两种,分别是 mmap 和 sendfile。

零拷贝(mmap)

RocketMQ用的是mmap方式。

mmap 是操作系统内核提供的一个方法,可以将内核空间的缓冲区映射到用户空间。

用了它,发送流程就有了变化。程序发起系统调用mmap(),尝试读取磁盘数据,具体情况如下:

  • 磁盘数据从设备拷贝到内核空间的缓冲区。
  • 内核空间的缓冲区映射到用户空间,这里不需要拷贝。

程序再发起系统调用write(),将读到的数据发到网络:

  • 数据从内核空间缓冲区拷贝到 socket 发送缓冲区。
  • 再从 socket 发送缓冲区拷贝到网卡。

发生了 2 次系统调用,对应 4 次用户空间和内核空间的切换,以及 3 次数据拷贝,对比之前,省下一次内核空间到用户空间的拷贝。 

不是说零拷贝吗,怎么还有 3 次拷贝?mmap 作为一种零拷贝技术,指的是用户空间到内核空间这个过程不需要拷贝,而不是指数据从磁盘到发送到网卡这个过程零拷贝。

确实省了一点,但不多。有没有更彻底的零拷贝?有,用 sendfile。

零拷贝(sendfile)

全文见:RocketMQ-为什么性能不如Kafka? - 自学精灵

http://www.dtcms.com/wzjs/571199.html

相关文章:

  • 广州 建网站专业团队的句子
  • 国内做网站上市公司中国建设网官方网站电子银行
  • 快速微信网站建设网站建设与维护 教学大纲
  • 网站建设愿景微信小程序注册要钱吗
  • 找设计公司上哪个网站江西百度推广开户多少钱
  • 长沙专业网站制作设计wordpress怎样添加轮播图
  • 专做网站漏扫的工具深圳市光明区属于哪个区
  • 网站域名免费申请做网站需要掌握什么软件
  • it网站建设干嘛的知名网站制作全包
  • 做系统哪个网站好wordpress相册轮播
  • 冀icp 网站建设建设银行河南分行网站
  • 帮别人做网站多少钱苏州建网站哪家
  • 更改网站图标自适应门户网站模板
  • 网站平台结构交通信息华建设网站
  • 广告案例的网站专业外贸网站制作公司
  • 洛阳建站公司效果杭州模板建站软件
  • 简述网站开发流程 旅游seo优化网站排名
  • 网站搭建网站管理潍坊高新建设局网站
  • 江门市专业做网站公司机械设计网
  • 网站页脚信息预约网站模板
  • 上海做网站公司推荐广西建设厅网站绿色建筑标识
  • 山东饰品行业网站制作网站制作设计哪家公司好
  • 个人网站模板html小程序建站平台
  • 网站建设重庆最加科技怎么给网站做开场动画
  • 不用花生壳做网站服务器wordpress建的网站
  • 如何与别的网站做友情链接服务网站欣赏
  • 足球网站模板下载wordpress下载页插件
  • 找做外墙油漆网站什么网站做跨境电子商务
  • 软件跟网站开发的区别公众号官网登录
  • 怎么做公司免费网站织梦网站文章发布模板下载