首页 > 其他分享 >Dubbo3应用开发——架构的演变过程

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

时间:2023-09-18 20:56:53浏览次数:54  
标签:SOA Dubbo 架构 演变 RPC 模块 Dubbo3 子系统

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;

微服务架构

标签:SOA,Dubbo,架构,演变,RPC,模块,Dubbo3,子系统
From: https://www.cnblogs.com/nicaicai/p/17713025.html

相关文章

  • JAVA高级架构师
    JAVA高级架构师技术包含:SpringBoot3.0,SpringCloudAlibaba,JDK11~19,Spring6,IOC,AOP,JavaWeb,SpringMVC,Mybatis,Docker,k8s,Devops,Vue3.0,Nginx,Redis7,MongoDB,JDBC,ShardingJDBC,Zookeeper,Dubbo,Activiti7,ES8,RabbitMQ,Redisson,Shiro,Paas,Neo4j,Kafka,Mycat,Tcp,ELK,SpringDa......
  • 高效数据湖构建与数据仓库融合:大规模数据架构最佳实践
    在当今数字时代,数据被认为是新的黄金,无论是企业、政府还是学术界,都需要有效地管理和分析海量数据。在数据处理领域,数据湖(DataLake)和数据仓库(DataWarehouse)是两个重要的概念。本文将深入探讨如何高效地构建数据湖,以及数据湖与数据仓库的融合,为大规模数据架构提供最佳实践。数据......
  • 服务器的架构有哪些
    服务器的架构有哪些1、单体架构软件设计经典的3层模型是表现层,业务逻辑层,数据访问层。典型的单体架构就是将所有的业务场景的表现层,业务逻辑层,数据访问层放在一个工程中最终经过编译,打包,部署在一台服务器上。2、垂直架构垂直架构是将一个大项目,按照业务场景纵向拆分为互不相干......
  • 商用密码体系架构介绍
    在网络安全上,采用https接入网关提供初始化验证和加密通信通道。在数据安全上,用户鉴别采用SM3、SM4等算法加密存储,采用SM3、SM4等算法对数据加密传输。在终端安全上,通过终端证书进行身份验证;在应用安全上,开展移动应用安全加固,通过数字证书、数据加密保证移动应用安全,接入时采......
  • 服务器的架构有哪些
    服务器的架构有哪些1、单体架构软件设计经典的3层模型是表现层,业务逻辑层,数据访问层。典型的单体架构就是将所有的业务场景的表现层,业务逻辑层,数据访问层放在一个工程中最终经过编译,打包,部署在一台服务器上。2、垂直架构垂直架构是将一个大项目,按照业务场景纵向拆分为互不相干......
  • EasyGBS视频流存储架构实现了什么功能多样性
    EasyGBS视频流存储架构基于GB28181接入设备,实现设备接入、存储、控制等功能。它支持视频汇聚、融合管理,能够兼容多类型设备和多协议接入。基于GB28181标准:EasyGBS使用GB28181标准,通过该标准接入设备,实现设备接入、存储、控制等功能。这使得EasyGBS能够兼容各种类型的设备和协议,实......
  • struts2.1 + Spring 3.X + hibernate3.X架构搭建问题记录
    目前正在试图搭建一个SSH的架构,之前在myeclipse8.6+ssh(struts2.1,spring2.5,hibernate3) +mysql+tomcat6.0做过例子,当时有老师带着,遇到问题也都解决了。而且,自己练习单表的增删改查时也能独立完成了。但是现在换成了myeclipse2014+orcle后,就是通不过去,郁闷中:现在想一遍解......
  • 系统架构设计师 - 模拟题 - 案例题(二)
    试题二(25分)阅读以下关于分布式系统设计的叙述,回答问题[说明]某软件公司拟开发一套电信领域的分布式系统,该系统后台多个功能模块同时运行时的计算负载较大,且需要控制不同的特定电信硬件设备,由于硬件体积和I/O端口冲突等原因,这些设备需要分散安装在多个不同计算机系统中。该系统......
  • Redis主从架构环境搭建(一主二从 + 3个sentinel)
    安装RedisServersudoadd-apt-repositoryppa:redislabs/redissudoaptupdatesudoaptinstallredis-serverredis-cli-h127.0.0.1-p6379pingsudosystemctlrestartredis-serverss-an|grep6379redis-server-vRedisserverv=7.0.12sha=00000000:0malloc=jem......
  • 高级系统架构师学习(五)软件架构设计-下篇
    一、大型网站系统架构演化【高速发展阶段】第四阶段【使用服务集群改善网站并发处理能力】背景:用户的请求由谁来转发到具体的应用服务器?用户如果每次访问到的服务器不一样,那么如何维护session的一致性?负载均衡分类:基于特定软件的负均衡(HTTP重定向)【应用层】反向......