摘要: 核心理念:计算和存储分离。
近日,在Aliware Open Source•深圳站 - Apache Dubbo & Apache RocketMQ 开发者沙龙上,Apache RocketMQ 创始人,阿里巴巴中间件高级技术专家 冯嘉 向开发者们分享了Apache RocketMQ 的过去、现在和未来,以及对RocketMQ5.0的展望。本文是根据冯嘉的现场分享所整理,为大家回顾分享中的精彩内容。
嘉宾介绍:冯嘉, Apache RocketMQ 创始人,Linux OpenMessaging 创始人,阿里巴巴 Messaging 技术负责人。
一、回顾过去 - RocketMQ的发展历程
阿里巴巴最早是一个电商平台,内部有一套系统,同时承载了会员、订单、商品等应用,有上百人在维护,每天的提交和发布都非常复杂。为了更好的支撑快速发展的业务,阿里在2007年启动了“五彩石”项目,通过横向和纵向两个维度将这一单体应用拆分出用户中心,商品中心,交易中心,评价中心等平台型应用,这时候系统和系统之间的交互就变得非常重要。通常,系统和系统之间有两种交互方式,一种是同步方式,通过rpc来实现,一种是异步,阿里的第一代消息引擎 Notify就是基于这个背景下产生的,用于淘宝B2C业务系统和系统之间的消息流转。
紧接着在2010年,阿里B2B业务开始大规模使用 ActiveMQ,并打造了自己的消息引擎Napoli。但无论是Notify,还是Napoli,他们的存储都是基于关系型数据库,最大的隐患是容易在磁盘上造成堆积。
2011年,LinkedIn开源了自己的分布式消息引擎Kafka,Kafka拥有强大的日志处理和处理磁盘堆积的能力,随后我们用Java重写了Kafka的核心逻辑,并以MetaQ项目进行开源。但MetaQ在遇到淘宝海量数据交易