在前1篇,我讨论了RocketMQ与Kakfa的对比中,几个不太严谨的地方。本着严谨的精神,不偏袒任何一方,本篇想分析一下RocketMQ在Kafka的基础上,的确做的几个改进。有不对之处,敬请指正。

topic/partion数量对性能的影响

我们知道在Kafka中,是每个topic_partition一个文件。虽然每个文件是顺序IO,但topic或者partition过多,每个文件的顺序IO,表现到磁盘上,还是随机IO。

所以为了改进这个,RocketMQ做了一个存储上的重要改变,就是把所有消息存到一个文件里面,单文件的顺序写。topic、partition(在RocketMQ里面,partition叫做queue),在这里只是一个逻辑上的划分。

关于这个,阿里中间件团队,专门写了一篇博客,测试这个。结论是:topic数量增加到一定程度,kafka性能急剧下降。

http://jm.taobao.org/2016/04/07/kafka-vs-rocketmq-topic-amout/

那么对于一个集群,kafka到底多少个partition合适呢,关于这个,也有一篇文章专门论述。

https://www.confluent.io/blog/how-to-choose-the-number-of-topicspartitions-in-a-kafka-cluster/

Kafka同步刷盘性能很低

关于这个,阿里中间件团队,也写了一篇博客。结论是:RocketMQ的同步刷盘性能,是Kafka的8倍。

关于这个的原因,有待看源码分析。

http://jm.taobao.org/2016/04/28/kafka-vs-rocktemq-4/

消费并行度

我们知道,Kafka为了保证每个partition的消息顺序,限制每个partition只能1个consumer消费。比如你的topic有8个partition,最多只能有8个consumer消费。

RocketMQ放开了这个限制,可以不保证消费顺序,也即多个consumer消费同1个partition(queue),这会极大提高消费并行度。

分布式消息队列RocketMQ与Kafka的18项差异之“拨乱反正“之2相关推荐

  1. 分布式消息队列RocketMQ与Kafka的18项差异之“拨乱反正”

    我们知道,阿里的RocketMQ其实源自Kafka.同时网络上一直流传着1篇阿里中间件团队所写的RocketMQ与Kafka的18项差异的文章,并且被广泛转发.比如: http://blog.csdn ...

  2. 分布式消息队列RocketMQ与Kafka架构上的巨大差异之1 -- 为什么RocketMQ要去除ZK依赖?...

    我们知道,在早期的RocketMQ版本中,是有依赖ZK的.而现在的版本中,是去掉了对ZK的依赖,转而使用自己开发的NameSrv. 并且这个NameSrv是无状态的,你可以随意的部署多台,其代码也非常 ...

  3. 分布式消息队列RocketMQ(一)安装与启动

    分布式消息队列RocketMQ 一.RocketMQ简介 RocketMQ(火箭MQ) 出自于阿里,后开源给apache成为apache的顶级开源项目之一,顶住了淘宝10年的 双11压力 是电商产品的 ...

  4. 分布式消息队列RocketMQ 快速入门

    分布式消息队列RocketMQ 一 RocketMQ概述 概述 1.MQ简介 MQ,Message Queue,是一种提供消息队列服务的中间件,是一套提供了消息生产.存储.消费全过程API的软件系统. ...

  5. 分布式消息队列RocketMQ继承SpringBoot

    一.介绍 Springboot 继承RocketMQ: com.alibaba.cloud spring-cloud-starter-stream-rocketmq 底层封装了 rocketmq-cl ...

  6. 阿里云消息队列 RocketMQ、Kafka 荣获金融级产品稳定性测评 “先进级” 认证

    近日,由中国信通院和混沌工程实验室联合举办的混沌工程技术沙龙–金融行业精品专场顺利召开,并发布金融级产品稳定性测评成果.在分布式系统稳定性评估体系获奖名单中,阿里云分布式消息队列服务成为通过首批消息队 ...

  7. 分布式消息队列 NSQ 和 Kafka 对比

    谈谈分布式消息队列的一些特性,比较两种比较常用的消息队列--NSQ和Kafka 1 消息队列的作用 解耦,将一个流程加入一层数据接口拆分成两个部分,上游专注通知,下游专注处理 缓冲,应对流量的突然上涨 ...

  8. 分布式消息队列RocketMQ—个人笔记(尚硅谷老雷老师视频)

    参考视频:[尚硅谷]RocketMQ教程丨深度掌握MQ消息中间件_哔哩哔哩_bilibili 第一章 RocketMQ概述 一.MQ概述 1.MQ简介 MQ,Message Queue,是一种提供消息 ...

  9. 分布式消息队列RocketMQ工作原理与应用(一)

    第 1 章 RocketMQ概述 一.MQ概述 1 .MQ简介 MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产.存储.消费全过程API的软件系 ...

最新文章

  1. 计算机网络第四章ppt谢希仁,计算机网络课件-谢希仁(第四章).ppt
  2. linux redis 三种启动方式
  3. (JavaWeb)ServletContext对象
  4. 数据结构--二叉树 Binary Tree
  5. bootsrap 外边距_Bootstrap CSS 概览
  6. jemter的竞品分析
  7. 在python3中如何加载静态文件详版步骤
  8. javascript单元测试:jasminejs 2.0的烦恼
  9. 1499元!魅族Watch“天青”配色正式首销:与手机完全互联互通
  10. css 设置表格右边有图片_20个web前端HTML5初学者实用CSS代码技巧
  11. JavaWeb 之 HttpServletResponse
  12. Mvc 前台 匿名对象
  13. 破解版超级数据恢复软件-内含已破解注册码
  14. arduino 有源 蜂鸣器_(二十)arduino入门:蜂鸣器的使用
  15. 微信公众号文章编辑的几点经验
  16. 电赛入坑----2017年电赛国赛真题滚球控制系统
  17. COMSOL 固体力学 第一主应力、第二主应力、第三主应力、径向应力、环向应力、切向应力 截面一维曲线
  18. Mysql 数据库迁移
  19. 将文件按照文件名分类到文件夹
  20. 前端怎么加粗字体_【好程序员独家】100道前端面试题(精选版 含答案)

热门文章

  1. 微积分小课堂:微积分的发明权之争【微积分发明和完善的过程】
  2. 英文seo,英文seo怎么样
  3. 关于如何通过信息系统监理师的自我心得
  4. python爬取股票网站的历史周价格
  5. 高等教育学:教育心理学概述
  6. 遥感影像处理的几个概念
  7. day07 pyecharts制图
  8. 懈寄生---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十四)(转载)
  9. 坐标变换学习笔记—代码篇Matlab
  10. 科目一计算机答题错了能修改吗,科目一可要是错了可以修改吗