在分布式架构流行前,国外 IT 厂商引领着中间件市场的发展,且以闭源、重商业的服务形式为主;随着云计算和互联网的普及,阿里将 RPC 框架、消息队列、服务发现、配置中心、分布式事务、限流降级等核心应用中间件技术对外开源,加速了分布式架构在国内的落地,也使得开发者在 Spring 技术栈以外多了一种选择。而云原生则实现了中间件以 BaaS 或 SaaS 的形态出现,解决了分布式应用架构落地后,中间件在容量管理、交付、运维、容灾上的难题,使用者通过标准化的 API 就可以完成对中间件的调用,从而提升企业整体的开发和运维效率。 本文讲述了阿里云在应用中间件领域核心开源项目的过去、现在和未来,篇幅较长,故事线罗列如下: Apache Dubbo(以下简称 Dubbo )是阿里巴巴于2012年开源的分布式服务治理框架,是国内影响力最大、使用最广泛的开源 RPC 框架之一,2017年捐献给 Apache 基金会,2019年正式毕业。 Dubbo 和社区开发者们 “从孵化器毕业是一种荣誉,但这并不是结束,而是另一种开始。这有点像求学,毕业并不意味着学习上的中断,而是发挥更大社会价值的开始。毕业也更像是一个成人礼,意味着 Dubbo 团队已经符合 Apache 对一个成熟开源项目的要求,并开始具备独立发展的能力。”阿里云高级技术专家北纬当时在接受媒体采访时回答道。 从 Apache 孵化器毕业,并不是结束。服务框架就像铁路的铁轨一样,是互通的基础,只有解决了服务框架的互通,才有可能完成更高层的业务互通,所以采用相同的标准是新一代服务框架发展的必然趋势。2021年,Dubbo 正式发布3.0版本,Dubbo3.0 是 Dubbo2.0 与 HSF 融合而来,是阿里巴巴面向内部业务、商业化、开源的唯一标准服务框架。 来自 Dubbo 官网首页 Dubbo3.0 的发布,也源自全面拥抱云原生基础设施的核心演进方向。 随着 K8s 成为资源调度的事实标准,Service Mesh 从提出到发展至今已经逐渐被越来越多用户所接受。 Dubbo 这类 Java 微服务治理体系面临了许多新的需求,包括期望应用可以更快的启动、应用通信的协议穿透性可以更高、能够对多语言的支持更加友好等。因此,Dubbo3.0 首次提出了全新的服务发现模型、下一代 RPC 协议和适配云原生基础设施等新能力。 如果把 RPC 作为同步通信的实现机制,那么消息队列可以看作是异步通信的实现机制。除了用于异步通信外,消息队列还能用于解耦、削峰填谷、分布式事务等场景,这对消息队列在性能、稳定性上提出了更高的要求。 2011年,当时的双11经常会出现消息延迟半天甚至一天以上,导致商家看不到买家已经购买了的商品的问题。而解决这个问题的本质是如何实现高速读写,但基于之前的架构,无法彻底地解决问题。那么,就需要设计一个全新的存储架构。负责全新产品设计的任务,刚好落到了RocketMQ 创始人&作者王小瑞身上。 但当时总共就两个人,一个人负责 Notify,王小瑞则负责全新产品的设计。但开源,可以汇聚数百人、数千人、数万人一起来开发,也能吸收所有公司、行业、业务场景的需求,汇聚最大的生产力。因此,从第一天开始的时候,RocketMQ 就是托管在 GitHub 上,也就是说它的第一行代码就是对所有开发者和用户开放的,整个开发过程也是对用户开放的,这也吸引了特别多的开发者,大家帮助 Review 代码、测试 Bug,RocketMQ 在众多开发者的参与下进展迅速。 2016年的那届双11,RocketMQ 团队首次将低延迟存储解决方案应用于双11的支撑,经受住了流量的大考,整个大促期间,99.996%的延迟落在了10ms以内,完成了保障交易稳定的既定目标,对于读写比例几乎均衡的分布式消息引擎来说,这一技术上的突破,即便是放在全球范围内,也绝对是值得称赞的。同时,“双11”当天达到万亿级消息量,峰值 TPS 达几千万,也创造了当时世界上最大的消息流转记录。从 RPC 框架到全面拥抱云原生基础设施
从 Messaging 到 Streaming 和 Eventing
发表评论 取消回复