Dubbo(二十二)--dubbo-原理-服务暴露流程

分析:如何通过dubbo:service来把服务暴露出去。

进入ServiceBean。它实现了两个重要的机制,一个是InitializingBean,当组件创建完对象以后会调用InitializingBean的唯一的方法afterPropertiesSet,也就是在属性设置完以后来回调这个方法。

 

比如:

剩下的标签就不再举例。afterPropertiesSet就是把spring配置文件中dubbo的标签内容保存起来。保存在ServiceBean里面。

再看下一步。

ServiceBean还实现了ApplicationListener<ContextRefreshedEvent>接口,叫应用的监听器。它监听的事件是ContextRefreshedEvent,当我们ioc容器整个刷新完成,也就是ioc容器里面所有对象都创建完成以后来回调方法onApplicationEvent(ContextRefreshedEvent event)。

 

接下来,对protocols的分析。

我们可以用dubbo协议,也能用其他协议进行暴露。

这个invoker,执行器。

放行,先进入RegistryProtocol的export方法

一路跟踪:

最终open的是一个netty服务器。

我们要暴露服务,创建服务器,其实就是启动netty服务器,监听20880端口。

放行,dubbo暴露出来,相当于netty服务器在底层启动,20880端口进行监听。

注册提供者。

总结:

1.dubbo底层启动netty服务器,监听20880端口。

2.注册中心注册服务

 

在暴露服务的时候,要获取到invoker(下图getInvoker()),再用exporter来暴露执行器。Exporter会用两个,dubboExporter和registryExporter。DubboExporter来开启netty服务器,registryExporter用来注册,服务(执行器)和对应的url地址,注册到注册表里。

对源码的分析。

 

  • 13
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值