0
点赞
收藏
分享

微信扫一扫

Dubbo的工作原理

说明:当前dubbo的版本为2.7.6

一、dubbo配置文件标签的解析过程

说明: spring框架在读取配置文件的时候,会调用BeanDefinitionParser(是一个接口),来进行配置文件的解析,因为我们使用是dubbo框架,编写的是dubbo的配置文件,所以最终会调用DubboBeanDefinitionParser解析器,来进行配置文件中标签的解析

Dubbo的工作原理_属性设置

Dubbo的工作原理_配置文件_02

Dubbo的工作原理_属性设置_03

这些类型的解析器,是怎么来的呢?

在DubboBeanDefinitionParser实例创建的时候,会给容器中注入各种类型的解析器。


Dubbo的工作原理_解析器_04

二、dubbo中服务的暴露过程

说明:dubbo中服务的暴露是由ServiceBean这个解析器来进行完成的

Dubbo的工作原理_属性设置_05

这个类实现了InitializingBean这个接口,

Dubbo的工作原理_配置文件_06

所以在ServiceBean实例对象创建完毕之后,会回调afterPropertiesSet这个方法,来进行ServiceBean实例属性的设置。属性设置完毕之后,会回调ApplicationListener这个接口中的

Dubbo的工作原理_解析器_07

回调用对应的。DubboBootstrapApplicationListener中的 刷新事件的时候,会启动

Dubbo的工作原理_配置文件_08

在这个方法中:

Dubbo的工作原理_解析器_09

exportServices:

Dubbo的工作原理_属性设置_10

这个时候就会调用ServiceConfig 这个类中的

Dubbo的工作原理_解析器_11

doExport:

Dubbo的工作原理_配置文件_12

doExportUrls:

Dubbo的工作原理_属性设置_13

doExportUrlsFor1Protocol:

Dubbo的工作原理_属性设置_14

PROTOCOL:的是现实RegistryProtocol、DubboProtocol调用这两个实现类的export方法,把包装好的执行器传递进去。

RegistryProtocol:


Dubbo的工作原理_解析器_15

doLocalExport:

Dubbo的工作原理_解析器_16

DubboProtocol:

Dubbo的工作原理_属性设置_17

openServer:

Dubbo的工作原理_配置文件_18

createServer:

Dubbo的工作原理_配置文件_19

Exchangers.bind:

Dubbo的工作原理_属性设置_20

getExchanger(url).bind(url, handler)

Dubbo的工作原理_配置文件_21

Transporters.bind:

Dubbo的工作原理_解析器_22

getTransporter().bind

Dubbo的工作原理_解析器_23

三、dubbo中服务引用的过程

spring配置文件的解析过程,如一所示

服务引用的解析器为ReferenceBean


Dubbo的工作原理_解析器_24

ReferenceConfig:服务引用实例的创建过程

Dubbo的工作原理_解析器_25

init()

Dubbo的工作原理_属性设置_26

createProxy()

Dubbo的工作原理_属性设置_27

REF_PROTOCOL:它的实现类是RegistryProtocol、DubboProtocol,调用注册中心的refer方法,最终会调用DubboProtocol的refer方法,过程和上面的服务暴露差不多。

总结: 底层通过Nettty和注册中心建立,链接,然后获取,引用的代理对象。

举报

相关推荐

0 条评论