Dubbo架构设计详解

  • 时间:
  • 浏览:0

都前要通过Dubbo的代码(使用Maven管理)组织,与上端的模块进行比较。简单说明各个包的请况:

总体架构

Dubbo的总体架构,如图所示:

Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的土办法来架构,使用这个 土办法都前要使各个层之间解耦合(由于最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是这个生活非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,那么来太少那么来太少基于这个 点都前要抽象出服务提供方(Provider)和服务消费方(Consumer)四个多 角色。关于注册中心、协议支持、服务监控等内容,详见上端描述。

参考补充

Dubbo以包型态来组织各个模块,各个模块及其关系,如图所示:

从上图都前要看出,Dubbo对于服务提供方和服务消费方,从框架的10层中分别提供了每个人 前要关心和扩展的接口,构建整个服务生态系统(服务提供方和服务消费方这个生活但会 四个多 以服务为中心的)。

根据官方提供的,对于上述各层之间关系的描述,如下所示:

远程通信与信息交换

远程通信前要指定通信双方所约定的协议,在保证通信双方理解协议语义的基础上,前要保证高效、稳定的消息传输。Dubbo继承了当前主流的网络通信框架,主要包括如下几次:

接着,将上端抽象的调用流程图展开,详细如图所示:

服务定义

服务是围绕服务提供方和服务消费方的,服务提供方实现服务,而服务消费方调用服务。

在通信过程中,不同的服务等级一般对应着不同的服务质量,那么选择大约的协议便是一件非常重要的事情。我能 根据你应用的创建来选择。例如,使用RMI协议,一般会受到防火墙的限制,那么来太少那么来太少对于內部与內部进行通信的场景,就不会说使用RMI协议,但会 基于HTTP协议由于Hessian协议。

服务监控

无论是服务提供方,还是服务消费方,你们都都 都前要对服务调用的实际请况进行有效的监控,从而改进服务质量。

Dubbo框架设计一共划分了10个层,而最上端的Service层是留给实际想要 使用Dubbo开发分布式服务的开发者实现业务逻辑的接口层。图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口, 占据 中轴线上的为双方都用到的接口。

下面,结合Dubbo官方文档,你们都都 分别理解一下框架分层架构中,各个层次的设计要点:

服务注册

对于服务提供方,它前要发布服务,但会 由于应用系统的繁复性,服务的数量、类型但会 断膨胀;对于服务消费方,它最关心怎么才能 才能 获取到它所前要的服务,而面对繁复的应用系统,前要管理血块的服务调用。但会 ,对于服务提供方和服务消费方来说,你们都都 还有由于兼具这个 种生活角色,即既前要提供服务,有前要消费服务。

通过将服务统一管理起来,都前要有效地优化內部应用对服务发布/使用的流程和管理。服务注册中心都前要通过特定协议来完成服务对外的统一。Dubbo提供的注册中心有如下几种类型可供选择:

服务的注册与取消,是对服务提供方角色而言,那么注册服务与取消服务的时序图,如图所示:服务订阅/取消为了满足应用系统的需求,服务消费方的由于前要从服务注册中心订阅指定的有服务提供方发布的服务,在得到通知都前要使用服务时,就都前要直接调用服务。反过来,由于不前要某四个多 服务了,都前要取消该服务。下面看一下对应的时序图,如图所示:

协议支持

Dubbo支持多种协议,如下所示:

服务调用

下面从Dubbo官网直接拿来,看一下基于RPC层,服务提供方和服务消费方之间的调用关系,如图所示:

从上端的架构图中,你们都都 都前要了解到,Dubbo作为四个多 分布式服务框架,主要具有如下几次核心的要点:

上图中,暗蓝色的表示与业务有交互,绿色的表示只对Dubbo內部交互。上述图所描述的调用流程如下: