架构师之路-dubbo启动过程及源码分析(四)

在这里插入图片描述

dubbo的初始化

DubboNameSpaceHandler的源码
当dubbo启动的时候,dubbo来解析标签的时候,dubbo.xml配置的每个标签都来调用这个DubboBeanDefinitionParser,
例如当读取到dubbo:application标签时,他就会读到dubbo:application标签的所有属性,然后set到组装出来的实体bean中(ApplicationConfig),最终这个实体bean会放入到spring的ioc容器里面
在这里插入图片描述
duboo容器的初始化,主要就是中转对象和代理对象的生命周期的研究
在这里插入图片描述
实例演示dubbo初始化过程(ServiceBean)
进入DubboNameSpaceHandler->
在这里插入图片描述
进入ServiceBean->找到afterPropertiesSet方法,服务暴露
在这里插入图片描述
跟进代码点击export,进入方法export->
在这里插入图片描述
serviceBean标签的属性配置详细
在这里插入图片描述

<dubbo:service path=“com.ws.service.IUserService” ref=“com.ws.service.impl.UserService@495fac5f” exported=“false” unexported=“false” interface=“com.ws.service.IUserService” id=“com.ws.service.IUserService” />

点击doExport,继续跟进代码,跟进doExport方法里面,第307行看到->
在这里插入图片描述
继续跟进到doExportUrls方法中,这里加载协议,通过dubbo:protocol来看配置了几种协议,并且遍历协议,对每个协议的服务进行服务暴露操作
在这里插入图片描述
默认如果暴露目标不配置协议,则会实现duboo.protocol配置的dubbo/rmi/hession协议的服务暴露操作
在这里插入图片描述
在这里插入图片描述
若目标服务配置了协议,则只会实现配置的协议这一个协议进行服务暴露实现
在这里插入图片描述
在这里插入图片描述
点击doExportUrlsFor1Protocol,协议创建中转对象->
在这里插入图片描述
调试面板如下
在这里插入图片描述
在这里插入图片描述
继续调试,当前是UserService使用dubbo协议,直接走DubboProtocol实现->进入DubboProtocol
在这里插入图片描述
在这里插入图片描述
跟进openServer方法里面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
QuestionService使用的rmi这里循环到这里时,使用rmi类的doExport
在这里插入图片描述
点击export进入AbstractProxyProtocol->
在这里插入图片描述
在这里插入图片描述

点击doExport进入RmiProtocol,这里就是中转对象了
在这里插入图片描述
在这里插入图片描述
dubbo的服务方和消费方根据接口全路径url来归类,消费方可以根据url来确定服务方是否提供了服务

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值