Dubbo服务引用
Dubbo会为引用服务创建一个代理对象,实现RPC的调用。
ReferenceConfig#get
ReferenceConfig#init
ReferenceConfig#createProxy
在创建代理对象时,会根据协议创建本地引用,远程引用和通过注册中心引用。
RegistryProtocol#refer
通过注册中心中心引用服务,会包装Cluster,Directory,LoadBanlance,Router组件。
ProxyFactory#getProxy
Dubbo默认代理是 JavassistProxyFactory 。
Dubbo总共提供了Failover ,Failfast,Failsafe ,Failback,Forking 5种集群策略,其中Failover是默认的集群策略。
服务目录 Directory 用于获取当前服务接口提供者信息,并将提供者信息转换为 Invoker 。
Router 的作用就是从 Directory 的 invoker 列表中刷选出符合路由规则的 invoker 子集。
通过 Direcotry 和 Router 之后,返回的是可用的 invoker 子集;在发起服务调用时,需要通过 LoadBalance 选择最终的一个目标 invoker。
AbstractClusterInvoker#invoke
FailoverClusterInvoker#doInvoke
Dubbo(四):深入理解Dubbo源码之如何实现服务引用 - 方块人 - 博客园