卷首语
对话Dubbo掌门人北纬:3.0 将至,这个版本会带来哪些新功能?
2008 年,Dubbo项目诞生;2014年,由于内部团队调整,Dubbo暂停更新;2017年,北纬带领团队重新唤醒Dubbo,并将其捐献给了Apache基金会。短短15个月,Dubbo便从基金会毕业。如今,Dubbo已经毕业一年,越来越多开发者开始询问Dubbo 3.0到底有哪些变化。近期,InfoQ独家对话Dubbo项目二代掌门人北纬(GitHub ID@beiwei30),听他解答上述问题。
“事实上,从我负责这个项目以来,我个人的体感是大家一直比较担心这个项目能不能持续发展,会不会断更。我也知道一些开发者在担心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的全面支持,柔性增强所涵盖的自适应策略和分布式负载均衡将会在性能和稳定性上带来更大突破。