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地址,注册到注册表里。

对源码的分析。

 
 

全部评论

相关推荐

无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
牛客963010790号:为什么还要收藏
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务