帅教官的裤裆好大,达博云原生之路:ASF毕业一周年,3。预期0

 2020-10-18 01:29:36  阅读   作者 感悟三十文章网

摘要:

简介:今年是Dubbo从Apache基金会毕业的一周年,也是Dubbo3的推广。0,是全面拥抱云原生的重要一年。Dubbo社区计划了[DubboCloudNativeRoad]系列文章,以回顾ApacheDubbo社区的发展。该系列文章主

  

  简介:今年是Dubbo从Apache基金会毕业的一周年,也是Dubbo 3的推广。0,是全面拥抱云原生的重要一年。Dubbo社区计划了[Dubbo Cloud Native Road]系列文章,以回顾Apache Dubbo社区的发展。该系列文章主要涵盖三个部分:Dubbo技术解释,社区运营和应用案例分析。

  纵观中国开源的整个历史,您真的找不到像Dubbo这样有争议和讨论的第二个开源项目。

  截止到2011年,它的开源替代了当时的生产环境使用的RPC框架的空白,一发布就被广泛采用;取代,它经历了停止维护,重启维护后捐献给Apache基金会,接着又以毕业于顶级项目状态。即使阿里决心向外界展示其开源投资,但达博将如何在流行的后起之秀Spring Cloud和新生的Service Mesh的影响下进行下去?在云原生时代,它如何继续其当前的辉煌?

  前言

  作为整个系列的开始,本文将回顾并期待整个Dubbo项目的发展,并简要总结后续文章。

  从2019年到现在,Dubbo毕业的那一年,Dubbo社区和产品取得了长足的进步。 同时,Dubbo云原生版本-Dubbo 3。0开发工作也已全面展开。

  社区方面。有两点需要提及:其一,登陆并做出贡献的公司用户数量进一步增加,携程,中国工商银行等200多家大中型公司积极与社区联系, Guazi二手车,Net Union清算,中通等;另一个以此Dubbo-go为代表的子社区蓬勃发展。

  产品技术的演进。Dubbo Java版已经发布了10个版本,并对多语言,协议,性能,服务管理模型等进行了深入探索。Dubbo go发布了8个以上的版本。 在基本使功能与Java版本保持一致的基础上,某些方向也已经超出Java版本。值得一提的是,阿里巴巴也在积极推动达博社区版的内部实施。 从今年开始,Dubbo将逐步取代其内部的HSF框架。一方面,这将有助于Ali将其在HSF上的丰富服务治理经验导出到社区。 另一方面,阿里的正式登陆也将直接加速Dubbo云原生的发展。

  在云原生浪潮下,3。0已被正式列为今年Dubbo产品构建的核心目标,涉及下一代RPC协议,服务管理模型,云原生基础架构调整和许多其他方面。其中,许多方面已经存在于当前的2。在版本7中进行了预探索,例如最近发布的基于HTTP / 2的协议支持,应用程序级服务发现等。 后续工作将在此基础上进行。该系列文章还将对Dubbo 3发表评论。0详细分析路线图和技术解决方案。

  达博(Dubbo)毕业一周年纪念回顾

  2017年7月,Dubbo开源项目被重新激活,并于2018年捐赠给Apache基金会。 2019年5月,Dubbo正式从Apache基金会毕业,成为最高的Apache项目。接下来,本文从社区,子社区和产品三个方面介绍Dubbo在过去一年中取得的成就。

  社区每年发布24个版本,有300多个贡献者

  如果说最初的重新启动是阿里巴巴领导的项目的维护投资,那么自从Dubbo加入Apache以来,它已经开始成为社区主导和基于社区的完全开放的基础项目。

  如今,这种趋势变得越来越明显。互联网和传统企业公司(包括阿里巴巴,携程,中国工商银行,瓜子二手车,Netlink Clearing和中通)已投资使用Dubbo和社区代码。达博社区变得非常活跃和多样化。

  在过去的一年中,Dubbo社区项目共发布了24个版本,开发了Committer / PMC的27人,其中20%的贡献者来自阿里巴巴,而80%以上的贡献者来自不同组织。

  达博社区组织了10多个离线聚会活动,基本上覆盖了国内开发商聚集的城市。通过离线或在线现场活动,共享100多个主题演讲,深入介绍Dubbo社区的最新发展,功能模块开发和近期计划。大多数主题演讲都是在社区中收集的。 达博的深入公司分享实践经验。 典型代表包括携程,中国工商银行,考拉和信贷计算能力。

  从Github统计数据来看,Dubbo Star数取得新的突破,已超过3万,重新排列开源时增长了近5倍;贡献者由最初的几十个增长到现在的300多个,而这其中有60多人已经被提名为committer,无论是贡献者数量还是committer比例都得到很大的提升; Dubbo Java发布的有65个。

  上面主要是Dubbo Java项目社区的开发摘要,下面将介绍Dubbo Java产品的进度。

  Dubbo Java迭代,目前维护3个主要版本

  社区目前维护着Dubbo Java的三个主要版本,即2。5,x,2。6。x和2。7X。

  2。7x是社区的主要开发版本。 在过去的一年中,总共发布了8个版本(2。70-2。77)每个版本都有一些值得注意的功能或功能升级,涵盖了从编程模型,服务管理,性能到协议的许多方面的增强; 2。6。x版本定位为错误修正版本。 在过去的一年中,总共发布了3个版本,主要侧重于解决问题和安全漏洞,而没有添加太多新功能。 2。5,自2019年初以来,x版本已宣布EOF,仅用于安全修复; 到下半年,它已完全停止维护。

  下面是一个简短的分层模块图,从编程模型,服务管理,传输协议,性能优化等角度回顾了过去一段时间内Dubbo技术架构的发展。:

  

  大型制造商已经实现了上述许多功能,以解决特定的业务问题。我们也期待这些制造商对Dubbo的实践经验进行更深入的总结。

  在发展的第五年,Dubbo-go与Dubbo携手并进

  除了Java的Dubbo外,在Dubbo周围还开发了许多出色的子项目(子社区),包括Dubbo-spring-boot-project,Dubbo-go等。 在这里,我们将首先关注Dubgo-go子社区。

  由于下雨,Dubbo-go项目于2016年5月首次建造,并于同年9月发布并开源。 下面的时间线图清楚地记录了Dubbo-go的过去和现在。

  

  Dubbo-go秉承“弥合Java和Go之间的鸿沟”的自然使命,已进入第五年,并且也走出了自己独特的发展道路:

  当前v1。4。0版本已对齐2。6。x版本,即将发布的版本将与v2相同。7x【基准v2。75]对齐,然后是基准Dubbo 3。x的v1。6。0版本;独立维护从紧张的hessian2协议库Dubbo-go-hessian2,网络库getty到上层对标Dubbo的Dubbo-go的实现实现;独立的TCP + Protobuf和gRPC + JSON通信方案也已开发完成完成【将包含着在版本v1。5,0中】;已与Dubbo / gRPC / Spring Boot实现互连互通;通过接收Opentracing和Promethus,Dubbo-go在可察觉性等微服务方向的进行了自己独特的探索;已实现了基于HTTPS的可信 RPC调用;已经实现了自己独特的把Kubernetes作为注册中心的微服务方案。

  Dubbo-go从一开始,Dubbo的Go语言实现就发展成为Dubbo的最强大的多语言版本。 它的发展与强大的Dubbo-go社区密不可分。除了上述Dubbo-go自身的特点外,通过跨社区合作,还取得了以下成就:

  通过与MOSN社区合作,已经实现Dubbo / Dubbo-go应用可以零成本接入基于MOSN实现Dubbo Mesh,实现微服务和云原生共存的“双模微服务”;与sentinel社区合作,在Dubbo / Dubbo-go完整的接收哨兵的降级和限流方案;与Apollo社区合作,在Dubbo-go中实现远程配置下发;与Nacos社区合作,实现基于Nacos的服务发现。

  Dubbo-go社区在2020年第二季度的主要目标是:

  释放完全对齐的Dubbo 2。7x的v1。5,版本0; 发布了基准Dubbo 3。v1中的0。6。版本0; 继续在云原生环境中进行自己的探索; 继续保持与兄弟社区的合作趋势和共同进步,扩大其使用范围; 在生产实践中,促进阿里集团和更多厂商的实施。

  该项目(包括子项目)已经由携程,Tuya Smart和Ant Financial等公司生产。阿里集团今年完成了HSF和Dubbo的整合后,该项目还将在阿里集团的双十一战场上进行测试。

  云原生Dubbo-Dubbo 3。0

  3。0是下一代Dubbo体系结构的代号。一年前,当首次探索“反应式流”时,社区还抱怨Dubbo 3。0广泛讨论。而这次,在云原生环境下,3。0表示Dubbo体系结构的更全面升级,涉及下一代RPC协议,新的服务管理模型和云原生基础结构调整。

  阿里巴巴正在参与Dubbo 3。0作为开发和建设的主要力量之一,这个始于阿里的开源项目正在返回阿里的内部。

  从去年开始,阿里巴巴已逐步推动以Dubbo取代其内部HSF框架。 通过集成Dubbo和HSF框架,阿里巴巴开发了适用于云原生架构的Dubbo版本。达博重返阿里巴巴是一个拥抱社区,拥抱云原生和拥抱标准化的好习惯。阿里巴巴内的达博3。实施0也是对社区的一项重大利益。 一方面,它将帮助阿里巴巴向社区输出其在HSF上丰富的服务治理经验。 另一方面,它将直接促进Dubbo云本机架构的快速发展。除阿里巴巴外,豆豆,中国工商银行,爱奇艺,豆豆等制造商也有。 也参与下一代Dubbo 3。0建筑。

  下面列出了Dubbo 3。下一篇文章将分别解释0中的三个重要方向,即特定的路线图:

  下一代RPC协议。新协议将提供更丰富的内置语义,例如流和流控制,同时具有更好的可伸缩性和网关友好性。 基于应用程序粒度的服务发现机制。在考虑到Dubbo面向接口的易用性和功能性的基础上,解决了适应Kubernetes Native Service的问题,解决了大型集群下地址推送性能的瓶颈问题以及适应Cloud Native基础架构的问题 解决方案。这涉及Dubbo服务和基础架构生命周期对接,Kubernetes本机服务适应,适应基础架构调度的服务治理规则以及适应Service Mesh体系结构的解决方案。

  接下来,我们将简要介绍这三个方面。

  下一代RPC协议

  下一代协议侧重于协议本身,主要侧重于HTTP / 2,反应流,流控制等。:

  反应性流?:Reactive Stream引入了RPC,它带来了更丰富的通信语义和API编程模型支持,例如Request-Stream,Bi-Stream等。; HTTP / 2?:在微服务云原生场景中,基于HTTP / 2的通信协议具有更好的通用性和渗透性; 流量控制?:该协议具有内置的流控制机制,并支持与请求流类似的Request(n)流控制机制。

  在要解决的业务场景方面,基于新协议的Dubbo需要在框架级别支持智能决策负载平衡算法,对Mesh和网关更加友好,并且更易于提供多语言实现和互通。

  网格?:?该协议更易于穿透Mesh,区分协议头元数据和RPC有效负载,从而促进与Mesh的协作,包括流控制机制,应用程序层配置协商等。; 协议通用性?:?考虑到多功能性和性能,支持协议可以在各种设备上运行; 多种语言?支持?:?例如,通过支持Protobuf,它提供了更完整的跨语言服务定义和序列化传输支持。

  应用程序级服务治理

  面向接口一直是Dubbo框架的优势。一方面,它的易用性使开发人员免受远程调用的影响。 另一方面,面向接口的地址发现和服务治理带来了更强大的功能,从而使整个Dubbo治理系统非常强大和灵活。

  既然面向接口有很多好处,为什么我们应该探索面向应用程序的服务治理模型?

  听起来很矛盾。实际上,无论是面向接口还是面向应用程序,这都是Dubbo的不同观点。我们谈到的“面向接口->面向应用”的转换主要体现在服务注册和发现级别:

  

  我们正在谈论的新的面向应用程序的模型主要针对第二点,即注册表的数据组织被转换为“面向应用程序/实例”的粒度。这为我们解决了两个问题:

  在服务发现级别,它与微服务模型(例如Kubernetes Service)保持一致; 服务发现的数据量将下降一个数量级,从“接口数量和实例数量”到“应用程序数量和实例数量”。

  云原生基础架构

  Cloud native带来了基础架构,应用程序开发,部署以及操作和维护方面的全方位变化:

  基础设施

  基础架构调度机制的变化带来了运营和维护(生命周期),服务治理等方面的变化。; 服务发现功能正在下沉,Kubernetes抽象了本机服务发现。

  服务网格云原生微服务解决方案

  Mesh为跨语言,sdk升级等提供了解决方案,Dubbo sdk要与Mesh协作,做到功能,协议,服务治理等多方便的适应; Mesh尚未大规模铺开,且其更适合对流量管控更关注的应用,传统SDK的性能优势仍旧存在,另外混部迁移场景可能会长期存在。

  在应用方案方面,Dubbo的可能部署环境包括:

  不使用Kubernetes Native Service,Kubernetes只作为容器编排调度设施,继续使用Dubbo自建的服务注册,发现机制;使用Kubernetes Native Service,Dubbo不再关心服务注册,Dubbo Client负责服务发现与流量分配; Dubbo sdk 往Mesh迁移,使其要做到适应Mesh架构,成为Mesh体系下的RPC编程和通信方案;试图做到到Dubbo与Mesh架构长期共存,互相打通服务发现和治理体系; Kubernetes上与云下对混合部署的平滑迁移支持,包括服务发现和网络通信解决方案连接的统一。

  在Dubbo功能划分方面,它将重点从以下几个方面为云原生基础架构提供支持:

  生命周期:Dubbo与Kubernetes调度机制绑定,保持服务生命周期与Pod容器等生命周期的自动转换;治理规则:服务监管规则在规则体,规则格式方面进行优化,如规则体以YAML描述,取消过滤规则对IP的直接依赖,定义规则特有的CRD资源等;服务发现:支持K8s Native Service的服务发现,包括DNS,API-Server,支持xDS的服务发现; Mesh架构协作:构建并实现的基于HTTP /2的通信协议,支持xDS的标准化的数据下发。

  新一代的RPC协议和应用程序级服务发现模型将是本部分的基础。

  总结与展望

  作为一系列文章的开头,在这里,我们对Dubbo过去一年的成就进行了简要总结和回顾,包括Dubbo社区的发展和产品迭代。

  接下来,我们将看到深层Dubbo用户分享的更多经验,Dubbo-go子社区的发展故事等。

  更重要的是,我们还致力于下一代云原生Dubbo-Dubbo 3。0表示展望,随后继续关注Dubbo 3。0本系列还将发布路线图,计划设计和进度分析。敬请关注!

  关于作者

  刘军的奇特名字是乌龟,Github帐户Chickenlj,Apache Dubbo PMC(该项目的核心开发),见证了Dubbo重新启动开源并从Apache Foundation毕业的整个过程。目前在阿里云原生应用平台团队中工作,参与服务框架和微服务相关工作,目前主要推广Dubbo 3。0-Dubbo云原生。

  本文是阿里云的原始内容,未经允许不得复制。

版权声明:"帅教官的裤裆好大,达博云原生之路:ASF毕业一周年,3。预期0"由 “感悟三十文章网” 原创,转载请附上原文出处链接及本声明;

原文链接:https://www.ganwu30.com/lizhi/lizhiwenzhang/47967.html

关于我们
感悟三十文章网分享美文美篇,作文大全,读后感观后感分享,文章励志篇,情感美文分享,免费奉上
扫码关注
Copyright ©2012-2020 Powered by 感悟三十文章网