Dubbo-01

1.Dubbo简介:

  1. Dubbo是一个分布式,高性能,透明化的RPC服务框架(RPC:远程过程调用协议)
  2. SOA:
    1. 英文名称(Service Oriented Architecture)

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

      1. 有一个专门提供服务单元.
      2. 其他所有单元都调用这个服务.
    3. SOA 定位:

      1. 如何设计项目,让开发时更有效率
      2. SOA 是一种设计思想
    4. 之前的项目架构设计

      1. 在公司项目不允许所有项目都访问数据库.
      2. 开发时,数据库访问层代码可能出现冗余
        下图为之前的项目架构设计Dubbo-01_第1张图片
    5. 使用 SOA 架构

      1. 专门访问数据库 服务( 项目).
      2. 开发时可以实现,数据访问控制和代码复用.
        下图为SOA架构
        Dubbo-01_第2张图片
    6. 实现 SOA 架构时,常用服务.

      1. Dubbo 做为服务.
      2. WebService 做为服务.
      3. Dubbox 做为服务.
      4. 服务方就是 web 项目,调用 web 项目的控制器.
        1. 使用 HttpClient 可以调用其他项目的控制器.
  3. RPC:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议
    1. 英文名称( Remote Procedure Call Protocol )

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

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

    4. RPC 最大优点:

      1. 数据安全性.

2.Dubbo的作用:三大核心能力:

1. 面向接口的远程方法调用

2. 智能容错和负载均衡

3. 服务自动注册和发现

3.Dubbo架构图:

Dubbo-01_第4张图片

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

  2. Container:Dubbo容器,依赖于Spring容器

  3. Consumer:消费者,调用服务方

  4. Registry:注册中心,当Container(容器)启动时,将所有可以提供的服务列表上Registry中进行注册

    4.1 作用:告诉Consumer提供了哪些服务,服务方在哪里
    
  5. Monitor:监听器

  6. 深蓝色虚线:在启动时完成的功能

  7. 浅蓝色虚线与实线:在程序运行过程中执行的功能

  8. 虚线代表异步访问,实线代表同步访问

    注意:图中可知只有服务调用时才是同步访问,同时也是最耗时的地方,必须是同步
    
  9. 所有的角色都可以在单独的服务器上,所以必须遵守特定的协议

4.Dubbo的运行原理:

英文单词:

start:开始    register:注册  

subscribe:订阅    notify:告知

invoke:调用   count:统计
  1. 启动容器,相当于在启动Dubbo的Provider

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

  3. 在Consumer启动后会Registry获取获取服务列表和Provider的地址,进行订阅

  4. 当Provider有修改后,注册中心会把消息推送给Consumer

     此处使用了观察者设计模式(又叫 发布/订阅模式)
    
  5. Consumer根据获取到的Provider地址,真实调用Provider的功能

     在Consumer方使用了代理设计模式,创建一个Provider方类的一个代理对象,通过代理对象获取Provider中的真实功能,作用是保护了Provider方的真实功能
    
  6. Consumer和Provider 每隔一定的时间向Monitor发送统计信息,统计信息包含,访问系数,频率等

5.Dubbo支持的注册中心

  1. Zookeeper(推荐)

    1. 优点:支持网络集群

    2. 缺点:稳定性受限于 Zookeeper

  2. Redis

    1. 优点:性能高.

    2. 缺点:对服务器环境要求较高.

  3. Multicast

    1. 优点:面中心化,不需要额外安装软件.

    2. 缺点:建议同机房(局域网)内使用

  4. Simple

    1. 适用于测试环境.不支持集群

6.Zookeeper 简介

  1. Zookeeper 分布式协调组件.

    1. 本质一个软件.辅助分布式的搭建和管理
  2. Zookeeper 常用功能

    1. 发布订阅功能 .把 zookeeper 当作注册中心原因.

    2. 分布式/集群管理功能.

    3. 分布式锁

  3. 使用 java 语言编写的.

你可能感兴趣的:(Dubbo学习)