RocketMQ的前世今生

一、前言
阿里巴巴消息中间件起源于2001年的五彩石项目,Notify在这期间应运而生,用于交易核心消息的流转。

至2010年,B2B开始大规模使用ActiveMQ作为消息内核,随着阿里业务的快速发展,急需一款支持顺序消息,拥有海量消息堆积能力的消息中间件,MetaQ 1.0在2011年诞生。

到2012年,MetaQ已经发展到了MetaQ 3.0,并抽象出了通用的消息引擎RocketMQ。随后,将RocketMQ进行了开源,阿里的消息中间件正式走入了公众的视野。

到2015年,RocketMQ已经经历了多年双十一的洗礼,在可用性、可靠性以及稳定性等方面都有出色的表现。与此同时,云计算大行其道,阿里消息中间件基于RocketMQ推出了Aliware MQ 1.0,开始为阿里云上成千上万家企业提供消息服务。

到今年,MetaQ在2016年双十一承载了万亿级消息的流转,跨越了一个新的里程碑,同时RocketMQ进入Apache 孵化。

RocketMQ项目只维护核心功能,且去除了所有其他运行时依赖,核心功能最简化。每个BU的个性化需求都在RocketMQ项目之上进行深度定制。
在RocketMQ项目基础上衍生的项目如下
com.taobao.metaq v3.0 = RocketMQ + 淘宝个性化需求,为淘宝应用提供消息服务。
com.alipay.zpullmsg v1.0 = RocketMQ + 支付宝个性化需求,为支付宝应用提供消息服务。
com.alibaba.commonmq v1.0 = Notify + RocketMQ + B2B个性化需求,为B2B应用提供消息服务。

2007年,淘宝实施了“五彩石”项目,将交易系统由单机交易升级到了分布式,这个过程中产生了Notify。
2010年,阿里巴巴B2B部门基于ActiveMQ的5.1版本也开发了自己的一款消息引擎,称为Napoli。
2011年,Linkin推出Kafka消息引擎,阿里巴巴在研究了Kafka的整体机制和架构设计之后,基于Kafka的设计使用Java进行了完全重写并推出了MetaQ 1.0版本,主要是用于解决顺序消息和海量堆积的问题,由开源社区killme2008维护。
2012年,阿里巴巴对于MetaQ进行了架构重组升级,开发出了MetaQ 2.0,这时就发现MetaQ原本基于Kafka的架构在阿里巴巴如此庞大的体系下很难进行水平扩展,所以在2012年的时候就开发了RocketMQ 3.0。
2015年,又基于RocketMQ开发了阿里云上的Aliware MQ和Notify 3.0。
2016年,阿里巴巴将RocketMQ的内核引擎捐赠给了Apache基金会。
MetaQ和RocketMQ区别:两者等价,在阿里内部称为MetaQ 3.0,对外称为RocketMQ 3.0。
以上就是RocketMQ的整体发展历史,其实在阿里巴巴内部围绕着RocketMQ内核打造了三款产品,分别是MetaQ、Notify和Aliware MQ。这三者分别采用了不同的模型:
MetaQ主要使用了拉模型,解决了顺序消息和海量堆积问题。
Notify主要使用了推模型,解决了事务消息
而云产品Aliware MQ则是提供了商业化的版本。

杂谈:metaq仅仅对rocketmq做了一层浅封装,加几个接口。
消息的推和拉的主体是消息,消息传递的方向只能是从服务端到客户端,所以推和拉谁是主体就好区分了。

猜你喜欢

转载自www.cnblogs.com/john8169/p/9180645.html