Redian新闻
>
十万亿条消息背后的故事

十万亿条消息背后的故事

科技

这是一个从诞生第一天起就在 GitHub 上开发的开源项目,也是中国第一个非 Hadoop 生态的 Apache 顶级项目。它统一了阿里集团内部所有业务线的消息中间件,伴随着中国互联网发展数次迭代。InfoQ 与阿里云开发者社区联合出品的【开源人说】系列视频第一期正式上线,一起来探访开源消息中间件 Apache RocketMQ 背后的人和事!

开源人说:属于开源人的时光博物馆

从无到有,三个月近 6 万行代码

作为一款消息中间件,RocketMQ 的第一行代码诞生于 2012 年。

消息系统在阿里内部演进了多年。2007 年,淘宝技术架构进行了调整,将交易系统从单体应用变成分布式,也是在这个过程中产生了阿里巴巴第一代消息中间件 Notify。2007 年到 2011 年,一直是 Notify 作为最主要的消息中间件支撑淘宝天猫业务。

到了 2011 年,天猫的业务更大了,消息规模也日益增长。在“双 11”流量压力下,每年都有出现问题的风险,消息会延迟半天甚至一天以上,这就造成商家卖出去的商品,看不到买家已经买掉了。当时“双 11”每年的数据量都要翻番,如果当年“双 11”问题解决不了,那么可预见下一年的“双 11”还会遇到同样的问题。

而解决这个问题的本质是如何实现高速读写,但基于之前的架构,无法彻底地解决问题。那么,就需要设计一个全新的存储架构。

负责全新产品设计的任务,刚好落到了王小瑞身上,2011、2012 年的时候,整个淘宝中间件的人还特别少,绝大部分产品都是一个人完成,既要开发,又要运维,还要技术支持。消息中间件也是类似情况,总共就两个人,一个人负责 Notify,一个人负责全新产品的设计,而他恰好负责后者。

王小瑞介绍,“当时淘宝的场景是数据量和并发量都在爆炸式增长,对于基础软件的性能要求非常苛刻。我们希望做出来的消息产品能够逼近硬件的极限,像火箭一样快,就给它起‘RocketMQ’。因为用户也是自己,所以一定是找一个最优的方式。比如,运维成本要足够低,整个链路依赖要足够短。”

而开源,可以汇聚数百人、数千人、数万人一起来开发,也能吸收所有公司、行业、业务场景的需求,汇聚最大的生产力。因此,从第一天开始的时候,RocketMQ 就是托管在 GitHub 上,也就是说它的第一行代码就是对所有开发者和用户开放的,整个开发过程也是对用户开放的,这也吸引了特别多的开发者,大家帮助 Review 代码、测试 Bug,RocketMQ 在众多开发者的参与下进展迅速。

“RocketMQ 每一行代码都很关键,并发问题怎么解决、存储问题如何解决,我当时做梦的时候都在想这些问题该怎么解决。老板没有规定一个严格的时间点,说你必须在什么时间写完,但是我的想法是,我已经想清楚了整个架构,我在心里将它当作自己的作品,而非公司的任务,希望把它快速实现出来,能够让更多人用起来。”

大概在三个月的时候完成了第一个版本,整个 RocketMQ 开发的代码量非常大,第一个大版本大概有 4 万行到 6 万行。后面大概每个月能发布一个版本。

“双 11”的考验

项目最终是要上生产环境验证的。特别是在“双 11”,流量是平时的上千、上万倍,一些平时微不足道的细节会在这个时候被放大一万倍,放大之后可能就是个大故障了。

作为基础软件的研发,RocketMQ 团队面临着巨大的压力,担心有平时没想清楚的细节。而对能考虑到的情况,也需要在“双 11”来临之前做好各种预案。

第一年的“双 11”,RocketMQ 团队挑选了一些相对非核心业务上线验证。逐步地验证,并逐步修复。消息系统中每一条数据都会影响到一笔业务中的订单,如果有问题必须用非常严谨的态度争分夺秒、通宵达旦地解决掉。Apache RocketMQ 联合创始人,消息队列团队负责人林清山回忆道:“还好赶在流量高峰前修复好了,新的技术融合架构平安地度过了第一个双 11。双 11 之后将这些问题进一步完善修复好,然后再进行更全面的验证。到第二年融合架构就百分百平稳上线了。”

光“双 11”还不够的,因为“双 11”只能证明性能和稳定性都很好。但对于业务来说,可能更关注的是针对某些业务场景的功能,RocketMQ 是否具备这个功能。所以 RocketMQ 不断地被打磨,应用范围与场景也越来越广。

2015 年,RocketMQ 开始统一阿里巴巴消息中间件。

“一开始 RocketMQ 上线可能接入的没那么多,但是随着后面阿里巴巴业务蓬勃发展,现在可以认为阿里所有子公司、所有部门都已接入了 RocketMQ 中间件消息系统。”林清山表示。

开源见证成长

开源的 RocketMQ,一路吸引了众多志同道合者,越来越多的人、越来越多的公司都参与进来,所有的社区开发者拧成一团。

“阿里在大量使用开源的产品,我们也希望能为开源社区去回馈我们自己的一些研发成果。”于是,2016 年,阿里巴巴将 RocketMQ 捐赠给 Apache 软件基金会。2017 年,RocketMQ 正式毕业,成为 Apache 顶级开源项目。

一个由中国开发者发起的项目站在了世界的舞台上,受到全球的企业和开发者的关注。

在此之前,RocketMQ 面对的是整个中国的开发者。开源其实是一个打明牌的过程,“意味着所写的每行代码都能被所有人看到,写的不好的地方也会被所有人发现。”王小瑞表示,“我到阿里之前是做 C++ 开发的,因为 RocketMQ 是我第一个 Java 项目,代码风格有点像 C++。当时有人在微博上说,‘有个方法的参数的方式不是类继承,而是两个平行的类传递进来,这个设计好傻。’我后来发现这确实挺傻的,但也没觉得特别沮丧。开源意味着所有缺点和优点,全部暴露在阳光之下,这也是帮助项目快速进步的方式,是帮助产品演化、避免错误路线的一种方式。”

进入 Apache 软件基金会孵化则是进入了全球化开源协作中,RocketMQ 成为了全球开发者都能使用的技术。在孵化过程中,RocketMQ 收获了全球开发者的建议和大力支持。更重要的是,“全世界都能看到这个产品到底好在哪里,不好在哪里”。

开源是一种生产力的体现,由数百人、数千人、数万人一起协作开发,同时又吸收全世界所有公司、所有行业、所有业务场景的需求。

“对于开发者而言,我们认为开源最重要的是在解决世界上最难、最有挑战的问题。并且大家协作的项目能被越来越多开发者使用,这也就意味着说项目在这个领域是顶尖的。从某种角度而言,开源是一种最优秀的软件开发形式,通过开源形式能把项目做到最优秀。最终能形成一个标准,让所有人进行技术选型时不用再做抉择,反正选择标准就对了。”

RocketMQ 的未来

2021 年,RocketMQ 推出了 5.0 版本,完成从业务消息平台向“消息、事件、流”一体化融合处理平台的升级,并在数据通道、事件驱动架构、分析计算等场景不断产生新价值。

2022 年,批量消息索引、逻辑队列发布 RocketMQ-MQTT,RocketMQ-Connect。

通过十年的开源建设,今天的 RocketMQ 已经拥有超过 2 万个 GitHub Star,服务数十万开发者,Contributor 人数超 500,每天通过 RocketMQ 流转的消息超过十万亿条。

阿里巴巴开源委员会副主席丁宇表示,“未来整个数字世界的根基是开源和云计算。阿里巴巴将继续以开源的方式,切实践行开放共享好科技的理念,加强与社区的合作,加大投入和治理力度,把阿里巴巴的开源行动更加有系统、有组织、可持续的发展下去,为社会创造价值。”

今日好文推荐

忍受不了糟糕的工作氛围,我退出了 Google WebAssembly 团队

Gitee关闭部分开源仓库:先审核再上线;技术团队20天开发出App后集体被裁,负责人怒用公司公号发文祝“早日倒闭” | Q资讯

独家专访字节跳动开源委员会:定位“资源中台”,不会为开源设立强KPI

让企业胆战心惊的GPL官司:新裁决是开源许可历史上的重要转折点

点个在看少个 bug 👇

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
澳洲一座标志性的雕像被拆,背后居然还有这样鲜为人知的故事……龙卷风健康快递 156单曲循环背后,那个忘不掉的故事有奖问卷:你还想在 故事FM 听到怎样的故事?2022,写下你的故事 | 「故事大爆炸2022」征文大赛全球股市蒸发20万亿美元,唯一好消息是坏消息已非秘密我和她的故事,早该上热搜了!6万合作药店,27亿条数据,今天又一家健康大数据公司上市中国共产党人早期为啥想要建军今早一条消息美加股市全线暴跌!加元兑RMB狂飙未来还要涨?一只口罩的故事:当你收获爱心,可曾想到让爱心发酵?|hi南周惊天逆袭,高中辍学的菲尔兹奖得主背后的故事两个小哥和狮子重逢画面火遍全球,这背后的故事,更让人动容无源物联网也将形成两大阵营!LPWAN“两分天下”的故事将再次上演?中国物流进入3.0时代:需求猛增,同城物流该讲一个什么样的故事?包粉晒包|这些包包,记录着我和妈妈之间的故事!!美联储加息背景下资源股还能不能持有?每个人都用的表情包,背后的故事如此催泪清华硕士进职校,看见“差生”标签背后的故事老少皆宜的新手机我与身边朋友们和冲浪的故事 | PH分享#64《纽约客》最经典封面和它们背后的故事上海逐步解封,江西男子自制木筏逃离:“离沪潮”背后的故事我不忍看…她们的故事里,藏着我们的故事学习一亿条脏话之后,世界上最脏的AI诞生了国产电动车的故事快讲不下去了史上最糟 AI 诞生!他用过亿条恶臭帖子,训练出口吐芬芳的「微软小冰」上海最贵“不可描述”花园洋房卖掉了?屋主可是降价了一个亿嗷…“背后的故事非常暖心”霸总狂砸5亿美元帮娇妻“搞科研”,背后的故事可没你想得那么简单十万亿赛道再获顶层支持!8只碳中和ETF一次性批出,什么信号?电动车利好政策多永远的行走——声音的故事项目方如何控盘币价?这个五一,我们听了17双“手”的故事首次揭秘:混沌好课背后的故事林黛:厄瓜多尔,我们来了----在莱昂多米多岩(Leon Mormido)浮潜
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。