dubbo服务发布 2.0版本

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)

前面讲到dubbo spi机制 这篇主要将如何发布服务

配置文件 

 

dubbo服务发布 2.0版本_第1张图片

DubboBeanDefinitionParser 解析dubbo-server1.xml 文件 注入多大屏ioc容器中 被spring容器管理

ServiceBean 中的 export方法

dubbo服务发布 2.0版本_第2张图片

再到 ServiceConfig     doExport() 方法

 

dubbo服务发布 2.0版本_第3张图片

doExportUrls()方法

 

dubbo服务发布 2.0版本_第4张图片

protocol.export() 方法 当前用到了扩展点 dubbo spi机制

private static final Protocol protocol  =(Protocol)ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();

注意这里的protocol  返回的是 RegisterProtocol  中的export()

dubbo服务发布 2.0版本_第5张图片

DubboProtocol 

dubbo服务发布 2.0版本_第6张图片

 

dubbo服务发布 2.0版本_第7张图片

dubbo服务发布 2.0版本_第8张图片

 

dubbo服务发布 2.0版本_第9张图片

Exchangers 类 bind方法

dubbo服务发布 2.0版本_第10张图片

HeaderExchanger bind()

dubbo服务发布 2.0版本_第11张图片

Transporters bind方法

dubbo服务发布 2.0版本_第12张图片

NettyTransporter bind方法

dubbo服务发布 2.0版本_第13张图片

NettyServer     doOpen 方法 真正的发布服务

dubbo服务发布 2.0版本_第14张图片

从 RegisterProtocol - > Dubbo$Protocol -> ProtocolFilterWrapper  -> ProtocolListenerWrapper -> DubboProtocol -> Exchangers ->  HeaderExchanger -> Transporters ->  NettyTransporter -> NettyServer     服务发布 并注册到注册中心    

你可能感兴趣的:(dubbo服务发布 2.0版本)