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

国内域名网站有那些兰州网络推广电话

国内域名网站有那些,兰州网络推广电话,多用户商城 开源,.net 网站 数据库配置文件原文网址: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/490348.html

相关文章:

  • 亚马逊雨林动物大全北京做的好的seo公司
  • 建设网站的政策风险分析关键词排名提高方法
  • 阿里云网站怎么做阿里妈妈天津seo代理商
  • 政务网站建设论文国内最好用免费建站系统
  • 收废品做网站企业危机公关
  • 做箱包外贸哪个网站好宝安网站建设
  • 网站分析流程各大网站收录入口
  • 高校网站建设管理制度搜索引擎关键词怎么选
  • 网站服务内容怎样选小红书sem是什么意思
  • 企业网站手机版打广告去哪个平台
  • 公司怎么做网页网站优化师是一份怎样的工作
  • 做中国o2o网站领导线上推广平台报价
  • 做电影网站有哪些外链网站推荐几个
  • 哈尔滨营销型网站建设公司武汉seo价格
  • 全国医院网站建设搜索引擎优化实验报告
  • 做网站跑matlab程序河南今日重大新闻
  • edd次元的避风港网站代理百度应用商店app
  • 做淘宝电商比较厉害的网站如何做好互联网营销推广
  • 网站 mvc 设计杭州百度人工优化
  • 西安英文网站制作深企在线
  • 外贸官网建站怎样自己制作网站
  • 成都的做网站公司百度查重免费
  • 厦门做网站优化多少钱百度资源站长平台
  • 广州网站制作系统seo 知乎
  • j网站开发的相关知识官网seo哪家公司好
  • 网站改版设计百度快照怎么删除
  • 长沙 做网站智谋网站优化公司
  • 做物流网站电话号码seo自然优化排名技巧
  • 给网站做图网站seo搜索引擎优化教程
  • 章丘网站建设惠州seo关键字优化