架构道术-企业选择Dubbo作为分布式服务框架的10个理由

      最后更新:2022-07-31 17:21:11 手机定位技术交流文章

      本文介绍了企业分布式系统的进化过程,其中之一是一个非常重要的概念:基于服务的治理。那服务化治理中涉及到最核心的通讯框架就是RPC(Remote Procedure Call),RPC的概念和技术由Nelson于1981年提出,它主要用于支持异质分布系统之间的通信。

      如今,老国王引导每一个人明白,分布式多博框架具有哪些优势突破后墙,最终是独特的?

      目录

      1.RPC框架应用背景?

      RPC协议在服务管理中的作用

      3、企业分布式建筑选择杜波的10个理由

      3.商业代码的渗透率非常低

      3.1.1登记中心配置

      3.1.2?ServerSpringXML配置注册

      3.1.3?消费者春XML参考服务

      3.1.4?消费者电话服务代理

      3.2?自动登记和发现服务

      3.2.1服务终止的自动登记

      3.2.2客户自动检测

      3.3可适应的云初级微服务

      3.3.1互換 Kubernetes平台

      3.3.2? 适配Spring Cloud平台

      3.4?三个中心自然安全高可用性

      3.4.1支持多注册中心

      3.4.2支持多个配置中心

      3.4.3支持多个数据中心

      3.5灵活的交通路线管理策略

      3.6? Dubbo的二次开发很容易

      3.7完成技术文件系统

      3.8?服务监控接口的可视化

      3.9?监控对服务绩效的影响不大

      3.10完成全链跟踪计划

      Dubbo框架能成为一个吗?

      1.RPC框架应用背景

      回顾了40年的发展,RPC已经在许多大中型企业中广泛应用。我们知道Ali的Dubbo,Tencent的Tars,Google的gRPC,Facebook的Thrift,JSF的Yang,美国组织的OCTO-RPC,Spring Cloud等等。

      这些RPC框架在各自公司根据自己的业务情况,支撑着几乎全部业务系统,更为重要的是在大促618和11.11期间,RPC框架的抗压能力更为显著。

      RPC协议在服务管理中的作用

      在架构设计层面的服务属于抽象概念,最终实现服务降落的关键也是需要RPC协议。 在上述工厂中,不同的RPC框架在序列化实现、可读性、可扩展性和普遍性方面并不相同。

      但不管RPC框架如何,它们的设计和实现的想法并不与纳尔逊支持分布式系统异质性的想法不同。 在分布式系统异质性中,RPC的两个核心组成部分是必不可少的:

      RPC框架请求调用过程大致如下:

      在许多优秀的框架中,我们必须提到一个众所周知的RPC分布式框架 Dubbo。Dubbo3提供 Triple和 Dubbo2协议,这是Dubbo框架的原始协议。除此之外,Dubbo3还集成了许多第三方协议,并将其纳入杜博的方案编制和服务管理系统,这些包括gRPC、Thrift、Johnson RPC、Hessian2和REST。

      然后,从10个角度,他谈论为什么许多公司选择杜博作为他们的内部分布框架。

      3、企业分布式建筑选择杜波的10个理由

      卡普: Dubbo是一个开放源代码,高性能,为Alibaba提供出色的服务框架。该应用程序可以通过高性能RPC实现该服务的输出和输入功能,它可以与春式框架无缝地集成.它提供了三个核心功能:面向接口的远程方法调用,智能故障容忍和负荷平衡,及服务自动登记和发现。现在 Dubbo被Apache收购为顶级项目,它已成为许多企业最喜爱的对象.

      3.商业代码的渗透率非常低

      网络服务调用方法比本地进程空间执行方法更复杂。例如, 复杂细节如通信协议, 对象序列, 网络传输等.RPC框架保护我们免于与商业有关的实施细节,这种能力允许开发者只关注自己的商业逻辑。透明的远程方法调用,调用远程方法就像调用本地方法一样.只需简单配置,没有API入侵。

      3.1.1登记中心配置

      3.1.2服务点春季XML配置注册

      3.1.3消费者春季XML参考服务

      3.1.4消费者代理

      3.2自动登记和发现服务

      实现服务发现有很多方法,Dubbo 提供的是一种 Client-Based 的服务发现机制,经常需要部署第三方注册中心组件来协调服务发现过程,例如, 纳科斯 、 领事 、 动物园主等.Dubbo本身也为多个注册中心组件提供接口,用户可以灵活选择。官方建议是使用动物园主登记中心.

      3.2.1服务终止的自动登记

      当服务暴露时,注册中心的注册界面自动登录,服务提供者与注册中心保持了长期的连接。一旦连接切断消息,注册中心认为服务提供者无法使用,而提供者节点被删除。

      3.2.2客户自动检测

      避免基于接口名称的死服务提供者地址和注册中心的自动查询提供者IP的编写。上述过程是通过自动注册和自动检测机制实现的,既为服务提供者,又为消费者,无需人工干预。

      3.3可适应的云初级微服务

      随着互联网技术的不断更新和硬件基础设施成本的降低,基于云时代的基础设施容量正在日益释放,杜布博正在逐渐适应基于云的微型服务的变化。

      3.3.1互換 Kubernetes平台

      像 Kubernetes 等平台都集成了微服务概念抽象,Dubbo的应用级服务发现是适配各种微服务体系的通用模型。在架构兼容性上,Dubbo复用下层基础设施的服务抽象能力成为了可能。

      3.3.2 适配Spring Cloud平台

      其他行业微服务解决方案,例如Spring Cloud,也使用这个模型,使得用户可以在地址发现后具有异质的Dumbo连接的微服务系统进行探索。

      3.三个主要中心为自然保护提供了高度的便利

      我们知道杜博有三个主要中心:注册中心、配置中心和元数据中心。但在实际生产环境中,难免会有异地部署、同城多活、多地多中心等场景。那么杜布博能否保证在这些地区提供高可用性?这就是建筑师最关心的问题。答案是肯定的。

      当然支持多注册中心,多数据中心,多配置中心在杜博,为了满足多城市、多中心、多地方等部署架构模式的需求。这主要是由于阿里自己的业务特点--复杂多样的场景,各地的商业,甚至各国的商业,等等,这些因素也必然促使自身要保障好系统的稳定性和高可用。

      高可用性由登记中心图所示.

      3.4.1支持多注册中心

      Dubbo支持多注册中心,也就是说,一个接口或应用程序可以注册到多个注册中心,Consumer能够从多个注册中心中进行订阅相关服务的地址信息,从而进行服务发现。通过支持多注册中心的方式来保证其中一个注册中心集群出现不可用时能够切换到另一个注册中心集群,确保服务提供正确,并启动服务调用.

      3.4.2支持多个配置中心

      Dubbo支持多配置中心,为了确保其中一个配置中心集群不再可用,您可以切换到另一个配置中心集群,确保可以从配置中心正常获取全球配置、路由规则等信息。这也可以满足配置中心的部署适应各种高可用性部署架构模型。

      3.4.3支持多个数据中心

      Dubbo 支持多元数据中心,用于应对容灾等情况导致某个元数据中心集群不可用,此时可以切换到另一个元数据中心集群,保证元数据中心能够正常提供有关服务元数据的管理能力。

      3.5灵活的交通路线管理策略

      通过 Dubbo 定义的路由规则,可以实现对流量分布控制。Dubbo提供了支持Mesh方式的流量管理策略,可以很容易实现 A/B测试、金丝雀发布、蓝绿发布等能力。

      Dubbo将整个流程管理分成两个部分: VirtualService和 DestinationRule。当消费者收到请求时,会根据VirtualService中定义的DubboRoute和DubboRouteDetail匹配到对应DubboDestination中的subnet,最后,在“ DestinationRule ”中配置的子网信息中的标签找到与特定路由相符的“提供者群”。

      首先,路由规则可以多种,不同的路由规则有优先次序,路由规则可以调用到多个不同的应用程序服务,多个不同的路由规则可以被路由到相同的应用程序服务。其次,路由规则也可以防止向任何应用程序服务进行路由。最后,路由规则可以针对单个实例,它也可以是一个应用程序集群。

      该设计理念解决了流量分离与目标地址的耦合问题.本文不仅简化了配置规则, 而且避免了冗余问题.它还支持虚拟服务和 DestinationRule的任意组合,它可以非常灵活地支持各种商业使用场景。

      再开发Dubbo很容易

      Dubbo的扩展能力由JDK标准的SPI扩展点发现机制增强。它改善了JDK标准SPI的许多问题, Dubbo, 考虑 到 方案 方面 的 应用,没有强效的IoC容器,如Spring,相反,他们选择了最简单的基于工厂的管理扩展。

      如果你有下列场景请求,你可以根据杜博提供的扩展点定制扩展:

      1)自定义负荷平衡策略

      (二)建立自定义注册中心

      3)实现自定义滤波器

      很多小规模企业,基于地面生产环境的面向服务的架构基本上基于杜博。它主要是由于杜博的良好设计、简单使用和丰富的技术文件,更重要的是,开发者可以轻易地进行杜博的二次开发,例如,当一个基于Web的Dubbox框架被许多开放源代码社区的开发者所青睐时。

      在杜博,所有内部和第三方的实现均等,用户可以依靠自己的业务需要,取代 Dubbo 提供 的 原始 实现 。如果用户需要扩展,所以你只需要扩大你感兴趣的点。大大降低用户的工作量。

      扩展共四个步骤:

      Dubbo扩展使得 Dubbo项目可以轻易地被分成一个单个子模块来实现热互连特性。 用户可以完全依靠自己的需要来取代原来的 Dubbo实现,以满足自己的业务需要。

      3.7完成技术文件系统

      目前Dubbo已作为Apache顶级项目,自然少不了完善的文档。 Apache Dubbo

      详细开发说明文档:文档 | Apache Dubbo

      许多技术牛博客:Apache Dubbo Blog | Apache Dubbo

      完美社区生态:社区 | Apache Dubbo

      3.8服务监控接口可视化

      Dubbo-admin和 Dubbo-monitor提供了完美的服务接口管理和监控功能。不同应用程序的不同的接口,多版本,多程序,多注册中心管理。监测中心负责统计服务电话数目,调用时间等,统计数据首先在存储器编译后每分钟向监控中心服务器发送,用于服务的监控操作获取数据。

      监视中心可能无法安装,Monitor挂掉不会影响到Consumer和Provier之间的调用,我们刚丢了一些样品数据。另外,监测中心可以自行发展,包括个人化的操作监测、服务健康状况、服务压力和业绩状况、及时处理的警报通知等。

      3.9监测对服务绩效的影响不大

      序列化方面,我们都知道Java本地对象通过网络传输,必须实现Serializable 接口,也就是必须序列化。常见的序列格式是XML、Json、二进制流等。Dubbo采用最有效的二进制传输方法;此外,请求协议使用单一的长连接和NIO通信机制,这提高了沟通效率,不要重新连接,直接转移数据,并且支持大并发量。

      3.10完成全链跟踪计划

      我们知道,一些C端核心业务系统往往具有较高的性能要求,例如, 订单系统, 商品系统等.这些系统偶尔会遇到一些不可预测的问题。一旦系统陷入困境,研究需要及时的反应和快速的解决方案。这要求应用程序系统有一个非常完美的监控系统。但许多监控系统或监控组件往往对业务系统的性能产生更严重的影响,有些甚至在关键时刻阻塞业务流程。

      杜博提供了一个完美的监控机制,对性能影响很小。杜博可以收集每个电话链上每个服务的执行时间,以及整合孤立日志。根据TraceId,操作员很容易知道整个请求链的运行状态,这可以大大提高检测问题的效率.

      Dubbo框架能成为一个吗?

      因为 Dubbo框架是由Java语言开发的,如果该项目使用其他非Java语言,这要求选择其他RPC框架的技术选择性。如果杜布博将来是多语,在RPC分布框架领域有统一的可能性吗?让我们拭目以待。

      先自我介绍一下,他高中毕业了13年,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。了解大多数年轻的Java工程师,想要升技能,经常需要找到自己的成长或向班上汇报。但对于培训机构来说,学费大约是人民币,着实压力不小。当你不在系统时,自我学习的效率很低,而且很持久。也很容易停止天花板技术。所以我为你收集了一个"java开发工具"初衷也很简单,这是一个想帮助自己学习的朋友,却不知道该从哪里学习。同时减少每个人的负担.添加下方名片,你可以得到完整的学习信息

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/31045.html

          热门文章

          文章分类