Dubbo架构设计详解

  • 时间:
  • 浏览:0
  • 来源:大发5分快乐8_极速5分11选5

服务监控

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

服务调用

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

服务注册

对于服务提供方,它时要发布服务,否则机会应用系统的繁复性,服务的数量、类型本来断膨胀;对于服务消费方,它最关心如可获取到它所时要的服务,而面对繁复的应用系统,时要管理几瓶的服务调用。否则,对于服务提供方和服务消费方来说,大伙还有机会兼具这有本身角色,即既时要提供服务,有时要消费服务。

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

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

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

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

接着,将上面抽象的调用流程图展开,删改如图所示:

Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的辦法 来架构,使用全都辦法 都时要使各个层之间解耦合(机会最大限度地松耦合)。从服务模型的高度来看,Dubbo采用的是有本身非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,全都基于全都点都时要抽象出服务提供方(Provider)和服务消费方(Consumer)有十个 角色。关于注册中心、协议支持、服务监控等内容,详见上面描述。

在通信过程中,不同的服务等级一般对应着不同的服务质量,那末确定大概的协议便是一件非常重要的事情。给你根据你应用的创建来确定。类事,使用RMI协议,一般会受到防火墙的限制,全都对于内外部与内内外部进行通信的场景,就暂且使用RMI协议,本来基于HTTP协议机会Hessian协议。

服务定义

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

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

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

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

协议支持

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

从上面的架构图中,大伙都时要了解到,Dubbo作为有十个 分布式服务框架,主要具有如下几个核心的要点:

参考补充

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

总体架构

远程通信与信息交换

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

从上图都时要看出,Dubbo对于服务提供方和服务消费方,从框架的10层中分别提供了各自 时要关心和扩展的接口,构建整个服务生态系统(服务提供方和服务消费方有本身本来有十个 以服务为中心的)。

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