Dubbo原理和源码解析之服务暴露

在官方《Dubbo 用户指南》架构部分,给出了服务调用的整体架构和流程:

Dubbo原理和源码解析之服务暴露

 

另外,在官方《Dubbo 开发指南》框架设计部分,给出了整体设计:

Dubbo原理和源码解析之服务暴露

以及暴露服务时序图:

Dubbo原理和源码解析之服务暴露

 

本文将根据以上几张图,分析服务暴露的实现原理,并进行详细的代码跟踪与解析。

二、原理和源码解析 2.1 标签解析

从文章《Dubbo原理和源码解析之标签解析》中我们知道,<dubbo:service> 标签会被解析成 ServiceBean

ServiceBean 实现了 InitializingBean,在类加载完成之后会调用 afterPropertiesSet() 方法。在 afterPropertiesSet() 方法中,依次解析以下标签信息:

<dubbo:provider>

<dubbo:application>

<dubbo:module>

<dubbo:registry>

<dubbo:monitor>

<dubbo:protocol>

ServiceBean 还实现了 ApplicationListener,在 Spring 容器初始化的时候会调用 onApplicationEvent 方法。ServiceBean 重写了 onApplicationEvent 方法,实现了服务暴露的功能。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxgwx.html