为什么是RocketMQ(翻译)
动机
在早期阶段,我们构建分布式中间件基于ActiveMQ 5.x(早于 5.3)。我们的国际业务将其用于异步通信,搜索,社交网络活动流,数据管道,甚至在其交易流程中。随着我们的交易业务吞吐量增加,源自我们的消息集群的压力也变得迫切。
为什么是RocketMQ
基于我们的研究,随着使用的队列和虚拟主题的增加,ActiveMQ IO 模块成为了瓶颈。 我们尽力通过节流,断路器或降级解决这个问题,但效果不佳。因此我们开始关注那时候比较流行的消息解决方案kafka。不幸的是,就低延迟和高可用方面而言,kafka不能解决我们的特殊需求,详情看这里。
在这种情况下,我们决定创造一个新的消息引擎来解决更广泛的使用场景,从传统的发布/订阅情景到大容量的实时零容错零容忍事物系统。我们认为这个解决方案可能是有益的,因此我们希望将它向社区开源。目前,有超过100家公司在生产环境中使用开源的RocketMQ版本。我们还发布了基于RocketMQ的商业发行版,一种被称为阿里云平台的paas产品。
下面的表格展示RocketMQ,ActiveMQ 和Kafka (来自awesome-java的流行消息解决方案)之间的对比
Rocket ,ActiveMQ ,kafka比较
消息产品 | ActiveMQ | Kafka | RocketMQ |
---|---|---|---|
客户端SDK | Java, .NET, C++ 等 | Java, Scala 等 | Java, C++, Go |
协议和规范 | push模式,支持OpenWire, STOMP, AMQP, MQTT, JMS | pull模式,支持TCP | pull模式,支持TCP,JMS,OpenMessaging |
有序消息 | 独有消费者或队列可保证顺序 | 分区内保证消息顺序 | 保证严格的消息顺序,可优雅的横向扩展 |
定时消息 | 支持 | 不支持 | 支持 |
批量消息 | 不支持 | 支持,通过异步发送者 | 支持,通过同步模式避免消息丢失 |
广播消息 | 支持 | 不支持 | 支持 |
消息过滤器 | 支持 | 支持,可通过streams来过滤消息 | 支持,基于SqL92的属性过滤器表达式 |
服务器触发重发 | 不支持 | 不支持 | 支持 |
消息存储 | 支持快速持久化jdbc和高性能日志文件,例如levelDB,kahaDB | 高性能文件存储 | 高性能低延迟文件存储 |
消息回溯 | 支持 | 支持偏移量 | 支持时间偏移量 |
消息优先级 | 支持 | 不支持 | 支持 |
高可用故障转移 | 支持,依赖存储,kahadb需zookeeper | 支持,需要zookeeper | 支持,主从模式,不需其他组件 |
消息追踪 | 不支持 | 不支持 | 支持 |
配置 | 默认配置是低级别的,用户需优化配置参数 | kafka使用格式化键值对配置。值可通过文件或编程提供 | 开箱即用,用户只需关注一部分配置 |
管理和操纵工具 | 支持 | 支持,使用命令行暴露核心指标 | 支持,web和命令行暴露核心指标 |

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
腾讯技术分享:GIF动图技术详解及手机QQ动态表情压缩技术实践
本文来自腾讯前端开发工程师“ wendygogogo”的技术分享,作者自评:“在Web前端摸爬滚打的码农一枚,对技术充满热情的菜鸟,致力为手Q的建设添砖加瓦。” 1、GIF格式的历史 GIF ( Graphics Interchange Format )原义是“图像互换格式”,是 CompuServe 公司在1987年开发出的图像文件格式,可以说是互联网界的老古董了。 GIF 格式可以存储多幅彩色图像,如果将这些图像((https://www.qcloud.com/document/ ... w.59167.59167.59167)连续播放出来,就能够组成最简单的动画。所以常被用来存储“动态图片”,通常时间短,体积小,内容简单,成像相对清晰,适于在早起的慢速互联网上传播。 本来,随着网络带宽的拓展和视频技术的进步,这种图像已经渐渐失去了市场。可是,近年来流行的表情包文化,让老古董 GIF 图有了新的用武之地。 表情包通常来源于手绘图像,或是视频截取,目前有很多方便制作表情包的小工具。 这类图片通常具有文件体积小,内容简单,兼容性好(无需解码工具即可在各类平台上查看),对画质要求不高的特...
- 下一篇
一个JAVA程序员成长之路分享
在博客看到这么一篇文章,感觉自己已经从事这个行业将近三年的时间了,感觉什么都没学会,在公司里就是做一些分析一下小需求,在service层做一下逻辑处理,用hibernate做个增删改查,也没什么东西了。但是前台需要自己写,因为我们公司没有前台。。。,前台用的dojo框架,估计听说过的人应该挺少吧。在网上找个api都不好找。现在也天天加班,几乎每天都将近12点下班,学习些别的技术的时间很少,这篇文章所提到的技术,正式以后自己想要学习的技术。如果大家感兴趣,多学习学习吧,毕竟学习不吃亏。 我搞JAVA也有些日子了, 因为我比较贪玩,上进心不那么强, 总是逼不得已为了高薪跳槽才去学习, 所以也没混成什么大牛, 但好在现在也已经成家立业, 小日子过的还算滋润, 起码顶得住一月近万元的吃喝拉撒玩各种贷款信用卡 不为金钱过于发愁了。 我特别感谢当初贴吧遇见的那位大神, 虽然每个月也就聊那么几句, 但是他总能在我不知道该学啥, 该怎么走的时候, 给我方向, 毫不夸张的说,我现在的衣食无忧, 技术马马虎虎, 都是拜他所赐。 所以 我也想分享一些自己的成长过程 以及技术路线 希望一些迷茫的新人,或者想转...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS关闭SELinux安全模块
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装