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 👇

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

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