Dubbo简单入门【1】

一、Dubbo是什么

以下笔记学习自:Dubbo 官方文档

  1. 本质:一个Jar包,一个可以进行远程服务调用的分布式框架
    分布式: 不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题。
    分布式系统: 是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统
    Dubbo简单入门【1】_第1张图片
  2. 我的理解:
    两个人在不同的服务器上开发项目,我需要调用你的接口来处理一些数据或者事件,但是我不想部署你的项目,就可以在双方的电脑上配置Dubbo,通过Dubbo来进行远程方法调用。
    Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。

二、Dubbo的好处?

  1. 透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置。

  2. 软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。负载均衡的介绍

  3. 服务自动注册与发现,不再需要写固定的服务提供方地址,注册中心通过接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。

三、Dubbo架构

学习Dubbo之前,生产者消费者模型应该都了解。

  • 生产者(Provider): 暴露服务的 服务提供方, 为消费者提供服务

  • 消费者(Consumer):调用远程服务的 服务消费方Dubbo简单入门【1】_第2张图片
    如图上可以认为是一个分布式系统的调用,分别有四个消费者和生产者,消费者可以随机选择生产者进行消费。那么就会产生如下的关系。
    Dubbo简单入门【1】_第3张图片
    调用关系混乱。 所以Dubbo提供了一个Registry(注册中心)
    Registry(注册中心): 服务注册与发现的注册中心,Dubbo推荐的是Zookeeper(一致性处理的框架)
    简单来说,Zookeeper就好比中介, 房东(生产者)把房子放在中介处,中介将房子租给租客(消费者)。 如下图所示。
    Dubbo简单入门【1】_第4张图片
    所以Dubbo的架构图就很容易看明白了。
    Dubbo简单入门【1】_第5张图片

  • Provider 生产者

  • Consumer 消费者

  • Container 服务运行容器:生产者在容器里进行运行

  • Registry 注册中心

  • Monitor 监控中心:统计服务的调用次调和调用时间的监控中心

三、 运行流程

启动 → 注册 → 订阅 → 告知 → 调用 → 监视统计

  1. 服务容器负责启动,加载,运行服务提供者。

  2. 服务提供者(生产者)在启动时,向注册中心注册自己提供的服务。

  3. 服务消费者在启动时,向注册中心订阅自己所需的服务。

  4. 注册中心告知服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。

  5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选择一台提供者进行调用,如果调用失败,再选另一台调用。

  6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

你可能感兴趣的:(Dubbo,Dubbo)