Dubbo 实现原理及流程分析

1. Dubbo 是什么

Apache Dubbo 是一个高性能,轻量级,基于Java的RPC框架。Dubbo提供三个关键功能,包括基于接口的远程调用,容错和负载平衡以及自动服务注册和发现。

2. Dubbo 工作原理

Dubbo 实现原理及流程分析

2.1 对于以上节点说明

  • Provider:暴露服务的服务提供方
  • Consumer:调用远程服务的服务消费方
  • Registry:服务注册与发现的注册中心
  • Monitor: 统计服务的调用次数和调用时间的监控中心
  • Container:服务运行容器

2.2 调用过程及工作原理

  • 服务容器负责启动,加载,运行服务提供者
  • 服务提供者在启动时,向注册中心注册自己提供的服务。
  • 服务消费者在启动时,向注册中心订阅自己所需的服务。
  • 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  • 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  • 服务消费者 Consumer 和提供者 Provider,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心 Monitor。