Dubbo是什么?

Apache Dubbo™ (incubating)是一款高性能Java RPC框架。Dubbo是一个高性能服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,使得应用可通过高性能RPC实现服务的输出和输入功能,和Spring框架可以无缝集成。

Dubbo架构

dubbo的总体架构 dubbo详解_Dubbo


Dubbo主要由服务容器(Container)、服务提供者(Provider)、服务消费者(Consumer)、注册中心(Registry)和监控中心(Monitor)共五个部分构成。

Dubbo运行的主要流程为以下6个步骤:
0.服务容器负责启动,加载,运行服务提供者。
1.服务提供者在启动时,向注册中心注册自己提供的服务。
2.服务消费者在启动时,向注册中心订阅自己所需的服务。
3.注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4.服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
5.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

Dubbo配置

根据Dubbo官网给出的示例,目前Dubbo共有46个可以配置的配置项。

  • 启动时加载
    Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,以便上线时,能及早发现问题,默认 check=“true”。可以通过 check=“false” 关闭检查。
  • 集群容错
    在集群调用失败时,Dubbo 提供了多种容错方案,缺省为 failover 重试。集群容错的方案有:failover(失败自动切换)、failfast(快速失败)、failsafe(失败安全)、failback(失败自动恢复)、forking(并行调用服务器)、broadcast(广播所有提供者)。

——————————————
未完待续…