昨天,我们将分布式消息中间件RocketMQ捐赠给了开源软件基金会Apache。

孵化成功后,RocketMQ或将成为国内首个互联网中间件在Apache上的顶级项目。

消息一出,本以为群众的反应是这样的:

然而事实上,群众的反应是这样的:

今天,特别邀请到阿里巴巴中间件(Aliware)技术研究员蒋江伟(花名:小邪)跟大家分享一下RocketMQ开源的前世今生。

Q:能否简单介绍下RocketMQ的历史

A:早在2007年,阿里巴巴中间件团队就自主研发了Notify消息中间件,大范围应用于生产系统。为满足线上应用海量堆积的需求。2011年阿里巴巴中间件团队自主研发了RocketMQ消息中间件,具有单机亿级消息堆积能力,且能支持严格的消息顺序。截止今年,阿里巴巴线上所有消息全部通过RocketMQ来转发投递,2016年双十一当天更是达到万亿级消息量,峰值TPS几千万,创造了国内乃至世界上最大的消息流转记录。

Q:RocketMQ有哪些特性呢?

A:RocketMQ是一个低延迟,高可靠的分布式消息中间件。它被设计为采用长轮询拉的模式,支持传统消息领域的点对点和发布订阅模型,单主题下支持千万级别的消息堆积,对于离线计算具有很好的削峰填谷作用。对于企业级应用,它能很好的起到异步解耦的作用。作为数据通道,RocketMQ在事务数据复制(全局有序),实时计算方面也具备高效的吞吐,在今年双十一阿里巴巴数据应用场景里,RocketMQ端到端的平均延迟落在了100ms以内。

Q:听说RocketMQ还有个商用版本?能否简单介绍下?

A:RocketMQ的商业版本是阿里云的消息队列MQ(点击阅读原文可直达Aliware介绍页面),两个产品都是由阿里中间件消息团队出品。商业版MQ在支持TCP接入基础上,还支持HTTP和物联网MQTT协议接入,功能方面增强了运维管控方面的能力,包括可视化的消息轨迹、资源报表统计以及监控报警等;商业版MQ公有云上本身具备多机房部署同城高可用容灾特性,保证企业级高可靠高性能的同时,大大降低了企业客户运维成本。

Q:同时拥有商用版和开源版,中间件团队将如何维护呢?

A:开源和商业的协同效应,如何发挥到极致?这是一个世界性难题。以开源为核,商业为辅的形式,是我们目前得出的一个比较靠谱的可行之路。换句话说,我们会开源分布式消息所有核心的特性,而在商业层面,尤其是云平台的搭建上面,将运维管控,安全授权,深度培训等纳入商业重中之重。按照社区,尤其是Apache开源社区的运营理念,在社区建设,文档编纂,研讨交流,人才引进等方面加大投入。

Q:阿里为什么要做开源?

A:在阿里建立之初,正是基于开源软件,将整个电商平台的原型快速搭建起来的。不仅如此,即便这么多年过去了,虽然阿里的基础平台还在不断演进,但仍旧有开源软件的身影。我们感恩社区,也希望将这些久经线上验证的臻品拿出来,分享出来,回馈社区,让更多的人收益。我们希望更多的人能够参与进来,在这样一个开放透明,全球协作的环境下,相信阿里巴巴在开源领域会取得更多的成绩。

Q:还有什么想对大家说的?

A:阿里巴巴将RocketMQ捐赠给Apache只是第一步。如何将RocketMQ打造成为Apache Top Level Project,如何开源与商业化产品共赢,我们非常需要有志之士加入,欢迎发送简历到shijia.wxr@taobao.com

阿里巴巴积极拥抱开源事业

除了此次捐赠的RocketMQ外,其实阿里巴巴集团一直积极拥抱开源事业,无论是开源软件的应用、回馈以至自研技术的开源都非常活跃。

目前维护的热门开源项目超过 115 个。

捐赠的开源项目 JStorm 成为 ApacheStorm 里的子项目。

RocketMQ 已经被1000多家公司使用。

Tengine 现在是九大最流行的 WebServer 之一。

不久之前,还开源了AliSQL、跨平台开发框架 Weex。

阿里巴巴是 FSF、Apache、Linux 等基金会成员, Xen 顾问委员会成员。

阿里云还是MySQL开源分支 WebScaleSQL 的第五位发起成员。该分支是由 Facebook、 Google、LinkedIn 和 Twitter 四家互联网公司的数据库团队发起的以适应互联网场景为目标的MySQL分支。

阿里开源消息中间件RocketMQ的前世今生-转自阿里中间件的更多相关文章

  1. 分布式消息中间件rocketmq的原理与实践

    RocketMQ作为阿里开源的一款高性能.高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ 有哪些关键特性?其实现原理是怎样的? 关键特性以及其实现原理 一.顺序消息 消息有序指的是 ...

  2. 对比7种分布式事务方案,还是偏爱阿里开源的Seata,真香!(原理+实战)

    前言 这是<Spring Cloud 进阶>专栏的第六篇文章,往期文章如下: 五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强? openFeign夺命连环9问,这谁受得了? 阿里面 ...

  3. 实战!Spring Boot 整合 阿里开源中间件 Canal 实现数据增量同步!

    大家好,我是不才陈某~ 数据同步一直是一个令人头疼的问题.在业务量小,场景不多,数据量不大的情况下我们可能会选择在项目中直接写一些定时任务手动处理数据,例如从多个表将数据查出来,再汇总处理,再插入到相 ...

  4. JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码

    本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...

  5. 阿里开源的热补丁框架AndFix使用教程

    阿里巴巴推出的AndFix框架 首次给出大家这个框架的地址:https://github.com/alibaba/AndFix 对源码比较感兴趣的同学们可以自行研究代码 AndFix原理介绍 AndF ...

  6. 如何找到fastjson.jar这个阿里开源的jar包

    如何找到fastjson.jar这个阿里开源的jar包 转载 https://blog.csdn.net/AngelLover2017/article/details/84261261 Java编程中 ...

  7. Android热修复之 - 阿里开源的热补丁

    1.1 基本介绍 我们先去github上面了解它https://github.com/alibaba/AndFix 这里就有一个概念那就AndFix.apatch补丁用来修复方法,接下来我们看看到底是 ...

  8. 初识阿里开源诊断工具Arthas

    上个月,阿里开源了一个名为Arthas的监控工具.恰逢近期自己在写多线程处理业务,由此想到了一个问题. 如果在本机开发调试,IDE可以看到当前的活动线程,例如IntelliJ IDEA,线程是运行还是 ...

  9. 使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码 (jvm性能调优)

    技术交流群:233513714 本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 ...

随机推荐

  1. RabbitMQ之window安装步骤

    安装Rabbit MQ Rabbit MQ 是建立在强大的Erlang OTP平台上,因此安装Rabbit MQ的前提是安装Erlang.通过下面两个连接下载安装3.2.3 版本: 下载并安装 Era ...

  2. .NET使用NPOI2.0导入导出Excel

    NPOI开源地址:http://npoi.codeplex.com/ NPOI教程: http://tonyqus.sinaapp.com/ 具体的不在这里写了,感兴趣的可以去官网. 先来说导出的例子 ...

  3. Java上等价类划分测试的实现

    利用JavaFx实现对有效等价类和无效等价类的划分: 代码: import javafx.application.Application;import javafx.event.ActionEvent ...

  4. MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现

    一.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...

  5. MySQL索引类型总结和使用技巧以及注意事项

    索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable ...

  6. java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决办法

    这个问题的原因是没有导入mysql连接库,我从官网上下载后照着网上的教程各种导入无果,最后发现是我导入的文件错了.... 官网上下下来的压缩文件是这个,不过这并不是直接要导入的文件,首先解压文件,然后 ...

  7. MySQL 锁问题

    一.MySQL中不同的存储引擎支持不同的锁机制 (A) MyISAM 和 MEMORY 支持表级锁 (B) BDB 支持页面锁,也支持表级锁 (C) InnoDB 支持行级锁,也支持表级锁,默认是行级 ...

  8. 4541: [Hnoi2016]矿区

    学习了一下平面图剖分的姿势,orz cbh 每次只要随便选择一条边,然后不停尽量向左转就行 #include <bits/stdc++.h> #define N 1300000 #defi ...

  9. CSS标签

    CSS类选择器被大量使用了 class = cssname

  10. Python: open和codecs.open

    python的编解码: input文件(gbk, utf-8...)   ----decode----->   unicode  -------encode------> output文件 ...