dubbo(TODO)

dubbo

1.引言

dubbo是开发分布式系统所常用的RPC框架


1.1 分布式系统

分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个系统
简单来说就是"很多个计算机(服务)合起来为用户提供系统服务,用户在使用时感觉在用单个完整的系统"

1.2 RPC

远程过程调用,一种进程间的通信方式

2.dubbo架构

2.1 系统架构演变

2.1.1 阶段1:集中式架构

一个应用中包含所有的功能,例如订单,用户等
在这里插入图片描述
缺陷:
1.扩展不容易,如果要修改应用中某一个功能都会导致把整个应用重新打包
2.协同开发不容易,大家都去改同一个应用,可能会改乱,不利于维护
3.应用规模不大扩大后(功能越来越多),单体压力很大,光靠增加服务器的部署不能提升性能


2.1.2 阶段2:分布式系统

将一个单体的应用,根据功能拆分成多个小应用,将各个应用独立部署到服务器上
按功能进行垂直拆分
在这里插入图片描述
每一个应用都有三层架构

缺点:
1.页面和业务逻辑的分离, 因为在实际开发中,页面可能天天都需要改动,改一下页面就要重新对所有项目打包(服务层)部署,不合理,所以我们需要将页面和业务拆分
2.多个系统间,会有交互,例如在订单模块中可能要使用用户模块的功能查询用户信息(应用不可能完全独立),大量的应用之间需要交互

2.1.3 阶段3:分布式架构,共享服务

形成分布式架构,把 核心业务 抽取成服务,形成服务中心
在这里插入图片描述
存在的问题:当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。 此时,用于提高机器利用率的资源调度和治理中心
在这里插入图片描述
缺点:调用关系太复杂

2.1.4 阶段4:服务治理

在这里插入图片描述
Dubbo就是资源调度和治理中心,用来解决这些问题的

2.2 dubbo架构

架构图:
在这里插入图片描述
调用关系说明:

  • 服务容器负责启动,加载,运行服务提供者。
  • 服务提供者在启动时,向注册中心注册自己提供的服务
  • 服务消费者在启动时,向注册中心订阅自己所需的服务。
  • 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  • 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  • 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章