Categories
程式開發

《架构师》(2020年9月)


卷首语:对话 Dubbo掌门人北纬:3.0 将至,这个版本会带来哪些新功能?

作者 | 赵钰莹

2008 年,Dubbo 项目诞生;2014 年,由于内部团队调整,Dubbo 暂停更新;2017 年,北纬带领团队重新唤醒 Dubbo,并将其捐献给了 Apache 基金会。短短 15 个月,Dubbo 便从基金会毕业。如今,Dubbo 已经毕业一年,越来越多开发者开始询问 Dubbo 3.0 到底有哪些变化。近期,InfoQ 独家对话 Dubbo 项目二代掌门人北纬(GitHub [email protected]),听他解答上述问题。

“事实上,从我负责这个项目以来,我个人的体感是大家一直比较担心这个项目能不能持续发展,会不会断更。我也知道一些开发者在担心 Dubbo 只是阿里主导的 KPI 开源项目。”

根据 X-lab 开放实验室最新发布的《2020 年微服务领域开源数字化报告》,Dubbo 的开源活跃度全球排名 693,在微服务框架中排名第五,仅今年参与过社区建设的开发者数量已经达到 500 多人。 整个社区蓬勃发展,来自外部的代码贡献量已经超过来自阿里员工的贡献量。

长久以来,总有开发者喜欢将 Dubbo 与 Spring Cloud 进行比较,提到这两个名字的第一反应往往是应该选哪个,而不是二者如何配合使用。 在北纬看来,这主要还是技术选型的问题,以及用户对随之而来的切换成本的顾虑。其实这是一种误解,两者的关系不是非此即彼。今天的 Dubbo 已经成为了 Spring Cloud Alibaba 中一个重要的技术组件,Dubbo 服务和 Spring Cloud 服务可以完美的互相调用。未来,Dubbo 3.0 进一步的简化了 Dubbo 和 Spring Cloud 混布场景中服务基础设施的部署。

回到众多开发者对技术选型问题的顾虑:这两套框架并不是非此即彼。相反的,用户可以轻松的在这两套框架之间切换,甚至未来可以完美的在一起协同工 作,这得益于 Spring Cloud Alibaba 的出现。

现在的 Dubbo 2.7 已经可以很好的在 Spring Cloud 体系下工作。通过 Spring Cloud Alibaba 中 Dubbo 的集成,Spring Cloud 应用可以调用原生发布的 Dubbo 服务,Spring Cloud 发布的 Dubbo 服务也可以被原生的 Dubbo 客户端调用。这个得益于 2.7 中服务自省的实验性项目,以及 Spring Cloud 侧对 Dubbo 的适配。

在正在开展的 3.0 大版本中,这个实验性的项目进化为原生应用级服务注册机制。通过这个特性,未来 Spring Cloud 应用和 Dubbo 应用可以更加完美的混布。用户可以为 Spring Cloud 和 Dubbo 复用同一套服务发现、服务配置、和服务管理体系,为 Dubbo 和 Spring 互通需要额外搭建网关将成为过去式,用户可以零成本的在两者之间切换,或者视场景不同选择不同的框架,甚至可以在同一个应用中混用。在项目核心成员小马哥的努力下,Dubbo 与 Spring Cloud 混布场景中业界常规的 Proxy 集群终于去掉,整个体系的架构更加简单和稳定。在 Dubbo 3.0 版本中,整个团队会继续进化应用级服务注册的想法,期望通过这项工作让 Spring Cloud Alibaba 与 Dubbo 在注册数据的模型上达成高度统一,复用同一套服务注册中心,进一步简化混布场景中的架构。

如今,社区中的很多开发者都对 3.0 版本期待已久。3.0 版本的主基调就是云原生支持,重点思考云原生友好的新一代 RPC 协议、应用级服务注册发现、K8s 原生服务发布、Mesh 控制面 xDS 协议对接以及分布式服务柔性等重磅级特性。

实际上,Dubbo 3.0 的功能会分阶段进行,目前应用级服务发现已经在内部和一些头部用户的场景做试点,后续随着项目的进展,团队会第一时间发布功能实现细节。在不久后的 9 月份, Dubbo 3.0 应用级注册发现将在阿里巴巴内部和开源侧各公司落地。

就应用方而言,从接口级注册发现到应用级注册发现可以显著降低注册中心和客户端的内存压力。今年双 11,云原生服务治理规则会把 Dubbo 多年以来在大规模高并发服务治理方面的最佳实践融入云原生。下一代协议将基于 http2/protobuf 带来更好的生态和 Reactive 的全面支持,柔性增强所涵盖的自适应策略和分布式负载均衡将会在性能和稳定性上带来更大突破。

目录

热点丨 Hot
思科前员工为报复恶意删除 400 多台虚拟机,公司损失超 1600 万

理论派 | Theory
一个微服务业务系统的中台构建之路
从 0 到 1 搭建技术中台之 ID 生成服务实践

推荐文章 | Article

重新思考日志:业务系统竟然是一个大数据库?
深度解读:实时数仓架构对比与基于 Flink 的典型 ETL 场景实现

观点 | Opinion
Java 的新未来:逐渐“Kotlin 化”