Dubbo源码分析之集群容错源码剖析
一、前言
在对集群相关代码进行分析之前,这里有必要先来介绍一下集群容错的所有组件。包含 Cluster
、 Cluster Invoker
、Directory
、Router
和 LoadBalance
等。
集群工作过程可分为两个阶段,第一个阶段是在服务消费者初始化期间,集群 Cluster
实现类为服务消 费者创建 Cluster Invoker
实例,即上图中的 merge
操作。第二个阶段是在服务消费者进行远程调用时。以 FailoverClusterInvoker
为例,该类型 Cluster Invoker
首先会调用 Directory
的 list
方法列举 Invoker
列表(可将 Invoker
简单理解为服务提供者)。Directory
的用途是保存 Invoker
列表,可简单 类比为 List
。其实现类