RPC服务框架dubbo(一):简介和原理解析

前置概念

在学习dubbo前,需要先了解SOA和RPC这两个概念。

SOA

1.英文名称(Service Oriented Ambiguity)

2.中文名称:面向服务架构

  2.1 有一个专门提供服务单元.

  2.2 其他所有单元都调用这个服务.

3.SOA定位:

  3.1 如何设计项目,让开发时更有效率.

  3.2 SOA是一种思想

4.之前项目架构设计

  4.1 在公司项目不允许所有项目都访问数据库.

  4.2 开发时,数据库访问层代码可能出现冗余

 RPC服务框架dubbo(一):简介和原理解析

 

5.使用SOA架构

  5.1 专门访问数据库服务(项目).

  5.2 开发时可以实现,数据访问控制和代码复用.

 RPC服务框架dubbo(一):简介和原理解析

 

6.实现SOA架构时,常用服务.

  6.1 Dubbo 做为服务.

  6.2 WebService 做为服务.

  6.3 Dubbox 做为服务.

  6.4 服务方就是web项目,调用web项目的控制器.

    6.4.1 使用HttpClient可以调用其他项目的控制器.

RPC

1.英文名称(Remote Procedure Call Protocol)

2.中文名称:远程过程调用协议

3.RPC解析:客户端(A)通过互联网调用远程服务器,不知道远程服务器具体实现,只知道远程服务器提供了什么功能.

RPC服务框架dubbo(一):简介和原理解析

4.RPC最大优点:

    4.1 数据安全性.

 

Dubbo简介

1.Dubbo:一个分布式高性能透明化RPC服务框架

2.作用:提供服务自动注册、自动发现等高效服务治理方案.

3.Dubbo架构图

  3.1 Provider :提供者,服务发布方.

  3.2 Consumer:消费者, 调用服务方

  3.3 Container:Dubbo容器.依赖于Spring容器.

  3.4 Registry: 注册中心.Container启动时把所有可以提供的服务列表上Registry中进行注册.

    3.4.1 作用:告诉Consumer提供了什么服务和服务方在哪里.

  3.5 Monitor:监听器

  3.6 虚线都是异步访问,实线都是同步访问

  3.7 蓝色虚线:在启动时完成的功能

  3.8 红色虚线(实线)都是程序运行过程中执行的功能

  3.9 所有的角色都是可以在单独的服务器上.所以必须遵守特定的协议.

 RPC服务框架dubbo(一):简介和原理解析

 

4.运行原理:

  4.0 启动容器,相当于在启动DubboProvider

  4.1 启动后会去注册中心进行注册.注册所有可以提供的服务列表

  4.2 Consumer启动后会去Registry中获取服务列表和Provider的地址.进行订阅.

  4.3 Provider有修改后,注册中心会把消息推送给Consummer

    4.3.1 使用了观察者设计模式(又叫发布/订阅设计模式)

  4.4 根据获取到的Provider地址,真实调用Provider中功能.

    4.4.1 Consumer方使用了代理设计模式.创建一个Provider方类的一个代理对象.通过代理对象获取Provider中真实功能,起到保护Provider真实功能的作用.

  4.5 ConsumerProvider每隔1分钟向Monitor发送统计信息,统计信息包含,访问次数,频率等.