Dubbo3应用开发——架构的演变过程

dubbo3,应用,开发,架构,演变,过程 · 浏览次数 : 175

小编点评

**Dubbo早期Dubbo的定位** * RPC架构,轻量级,易于开发和维护。 * SOA架构,支持服务发现、流量治理、可观测等功能,能够构建大型企业级微服务架构。 **基于Java的高性能,轻量级的RPC框架** * Dubbo 基于 Java,具有高效的性能和易于维护的特性。 * RPC 架构,能够极大地降低网络通信成本。 **SOA架构** * SOA架构是一种服务间接模式,能够将多个微服务集成到一个系统中,并提供服务发现、流量治理等功能。 * Dubbo 是一个典型的 SOA框架,它实现了服务发现、发布订阅等功能。 **2018年阿ايا巴巴把这个框架捐献给了 Apache 基UALA会,正式更名为 Apache Dubbo** * Dubbo 成为 Apache 的顶级项目,被广泛用于各种项目中。 * Dubbo 拥有广泛的生态系统,可与各种框架和工具整合。 **最新版本为Dubbo3.x Apache Dubbo 是⼀款易⽤、⾼性能的WEB和RPC 框架,同时为构建企业级微服务提供服务发现、流量治理、可观测、认证鉴权等能Uwaga、 sierp具与最佳实践。** **其他重要信息** * Dubbo3 已在阿ايا巴巴内部微服务集群全⾯落地,成功取代运⾏多年的 HSF 框架。 * Dubbo 目前成为 Apache 的顶级项目,拥有广泛的生态系统,可与各种框架和工具整合。

正文

Dubbo3应用开发——架构的演变过程

什么是Dubbo

  1. 早期Dubbo的定位;

    基于Java的高性能,轻量级的RPC框架;SOA【Service-Oriented Architecture ⾯向服务的架构】 = RPC+服务治理;

  2. 2018年阿⾥巴巴把这个框架捐献给了 Apache 基⾦会,正式更名为 Apache Dubbo。最新版本为Dubbo3.x Apache Dubbo 是⼀款易⽤、⾼性能的WEB和RPC 框架,同时为构建企业级微服务提供服务发现、流量治理、可观测、认证鉴权等能⼒、⼯具与最佳实践。

  3. Dubbo3 已在阿⾥巴巴内部微服务集群全⾯落地,成功取代运⾏多年的 HSF 框架。依托于Dubbo3,阿⾥提出了⾃⼰的微服务解决⽅案DNS(Dubbo + nacos + sentinel);

  4. 经过孵化,Dubbo⽬前成为Apache的顶级项⽬。

    官方⽹站:

    https://dubbo.apache.org/zh-cn/

    GitHub:

    https://github.com/apache/dubbo

SOA与微服务

时⾄今⽇,SOA与微服务架构基本可以统⼀成⼀个概念了。

单体结构

单体架构

问题:

  1. 热点问题(某个子系统访问量大,导致其他子系统的访问出现问题);
  2. 扩展性差,新资源的分配力度不精确(门户系统访问量,增加机器,增加服务器tomcat。但是新增的资源,不能精确给到门户);
  3. 模块(子系统)耦合度高、相互影响(修改某一个子系统的代码,产生了问题,影响其他的子系统);
  4. 维护部署成本高(某次发布,只更新了后台管理的(订单模块),但是因为是单体架构,所以会发布整个系统;
  5. 技术栈受限,必须使用相同的编程语言开发不同的子系统。

水平扩展 (集群构建)

水平扩展

比较单体架构,水平分割架构的好处是:

  1. 提高了系统的稳定性,—台节点出现问题,不会影响整个系统;
  2. 提高了系统的硬件支撑;
  3. 提高了系统并发的能力;

但是没有根本上解决单体架构的问题:

  1. 热点问题(某个子系统访问量大,导致其他子系统的访问出现问题);
  2. 扩展性差,新资源的分配力度不精确(门户系统访问量,增加机器,增加服务器tomcat。但是新增的资源不能精准的分配;
  3. 模块(子系统)耦合度高、相互影响(修改某一个子系统的代码,产生了问题,影响其他的子系统);
  4. 维护部署成本高(某次发布,只更新了后台管理的(订单模块),但是因为是单体架构,所以会发布整个系统);
  5. 技术栈受限,必须使用相向的编程语言开发不同的子系统。

垂直架构

垂直架构

RPC架构[Remote Procedure CaLL]

RPC架构是由垂直架构发展而来的;

RPC架构

SOA架构[Service-Oriented Architecture]

SOA架构是RPC架构的演化。代表框架Dubbo:

  1. RPC
  2. 服务治理
  3. ESB

RPC架构出现的问题

RPC架构出现的问题

如果我们右侧的订单模块只有一个,如果订单模块挂了,会影响整个调用链条;如果订单模块访问量大,只有一个会顾不过来;

所以我们可以对订单模块进行水平扩展,但是不具备可操作性,因为不能单独为订单模块做集群(订单是后台管理模块的一个功能);

SOA架构

SOA架构

可以把订单模块从后台管理系统中抽取成一个服务;可以把订单模块单独放到一个jvm中;

企业服务总线 ESB

企业服务总线 ESB

微服务架构

微服务是SOA架构的升级,在微服务体系统中,没有⼦系统了,全部都是服 务化功能。微服务架构代表框架,SpringCloud,DNS;

微服务架构

与Dubbo3应用开发——架构的演变过程相似的内容:

Dubbo3应用开发——架构的演变过程

Dubbo3应用开发——架构的演变过程 什么是Dubbo 早期Dubbo的定位; 基于Java的高性能,轻量级的RPC框架;SOA【Service-Oriented Architecture ⾯向服务的架构】 = RPC+服务治理; 2018年阿⾥巴巴把这个框架捐献给了 Apache 基⾦会,正式更

Dubbo架构设计与源码解析(一) 架构设计

作者:黄金 一、架构演变 单应用架构 > 垂直架构 > 分布式架构 > 微服务架构 > 云原生架构   二、Dubbo总体架构   1、角色职能 • Container:服务容器 (tomcat、jetty、weblogic) • Provider:服务提供者 •Consumer:服务消

Dubbo3应用开发—Dubbo序列化方案(Kryo、FST、FASTJSON2、ProtoBuf序列化方案的介绍和使用)

Dubbo序列化方案(Kryo、FST、FASTJSON2、ProtoBuf序列化方案的介绍和使用) 序列化简介 序列化是Dubbo在RPC中非常重要的一个组成部分,其核心作用就是把网络传输中的数据,按照特定的格式进行传输。减小数据的体积,从而提高传输效率。 Dubbo制定了Serializatio

Dubbo3应用开发—Dubbo注册中心引言

Dubbo注册中心引言 什么是Dubbo注册中心 Dubbo的注册中心,是Dubbo服务治理的⼀个重要的概念,他主要用于 RPC服务集群实例的管理。 注册中心的运行流程 使用注册中心的好处 可以有效的管理RPC集群的健康情况,动态的上线或者下线服务。让我们的服务更加高可用。 Provider与Con

Dubbo3应用开发—Dubbo3注册中心(zookeeper、nacos、consul)的使用

Dubbo3注册中心的使用 zookeeper注册中心的使用 依赖引入 org.apache.dubbo dubbo-dependencies-zookeeper-curator5

Dubbo3应用开发—Dubbo服务管理平台DubboAdmin介绍、安装、测试

Dubbo服务管理平台 DubboAdmin的介绍 Dubbo Admin是Apache Dubbo服务治理和管理系统的一部分。 Dubbo Admin提供了一套用于服务治理的Web界面,让我们可以更方便地对Dubbo系统进行管理和监控。新版本的Dubbo Admin是基于VUE、SpringBoo

Dubbo3应用开发—协议(Dubbo协议、REST协议 、gRPC协议、Triple协议)

协议 协议简介 什么是协议 Client(Consumer端)与Server(Provider端)在传输数据时双方的约定。 Dubbo3中常见的协议 1.dubbo协议[前面文章中使用的都是dubbo协议] 2.rest协议 3.triple协议 4.grpc协议 5.thirft协议 6.webs

Dubbo3应用开发—Dubbo直连开发相关概念:通信、协议、序列化

本文介绍了Dubbo3直连应用相关概念,包括通信、协议、序列化等内容。通过这些概念的讲解,可以更好的理解Dubbo3直连应用的开发。

Dubbo3应用开发—XML形式的Dubbo应用开发和SpringBoot整合Dubbo开发

Dubbo3程序的初步开发 Dubbo3升级的核心内容 易⽤性 开箱即⽤,易⽤性⾼,如 Java 版本的⾯向接⼝代理特性能实现本地透明调⽤功能丰富,基于原⽣库或轻量扩展即可实现绝⼤多数的 微服务治理能⼒。更加完善了多语言支持(GO PYTHON RUST) 超⼤规模微服务实践 ⾼性能通信(Tripl

Dubbo源码浅析(一)—RPC框架与Dubbo

RPC,Remote Procedure Call 即远程过程调用,与之相对的是本地服务调用,即LPC(Local Procedure Call)。本地服务调用比较常用,像我们应用内部程序(注意此处是程序而不是方法,程序包含方法)互相调用即为本地过程调用,而远程过程调用是指在本地调取远程过程进行使用...