dubbo源码-ServiceConfig/ReferenceConfig 流程

ServiceConfig主要负责服务的导出:

先通过设置的registry初始化注册中心url列表 registryURLs。

然后对设置的每个protocol每个注册中心进行服务的导出。

在执行服务导出时再初始化provider的url。

最后给provider的url设置到registry url的export属性上,最终通过registry协议对应的registryProtocol类执行服务导出,在该类中会解析export属性取出要导出的类。

 

ReferenceConfig负责服务的引用,流程和导出基本一致:

先初始化consumer基本属性。

通过设置的registry初始化注册中心url列表 registryURLs。

如果只有单个注册中心,则直接用protocol SPI通过该注册中心获取invoker,如果是多注册中心,则使用protocol SPI通过注册中心列表获取invoker list,使用该invoker list构建staticdirectory,最后使用Cluster SPI聚合staticdirectory获取单个invoker作为最后的invoker。(注:由于这里生成invoker使用的url都是registry协议的,所以最后使用的protocol都是registryprotocol,如何获取提供者地址也是在registryprotocol实现的)

最后使用proxy SPI通过上面得到的invoker获取最终使用的ref。

 

posted @ 2021-06-27 11:34  Birding  阅读(474)  评论(0编辑  收藏  举报