Dubbo服务暴露
2020-06-18 18:24:44 1 举报
Dubbo服务暴露详细时序图
作者其他创作
大纲/内容
protocol.export
exporter = protocol.export(wrapperInvoker);该protocol是自适应扩展点
bind
ocreateServer
其中这个扩展点是进过装饰的,所以它返回的Invoker的调用链为StubProxyFactoryWrapper(JavassistProxyFactory())
获取配置文件中的注册中心地址
new NettyServer()
export()开始进行服务的暴露
openServer
这里也用到了自适应扩展点
getInvoker
返回一个List
在这个方法里会开几件事情,首先会检查更新配置,然后会判断是否延迟暴露等等
doLocalExport
doExportUrls
返回AbstractProxyInvoker
super.export()
Exchanges
HeaderExchanges
这里getExchange默认为HeadsExchange
AbstractInterfaceConfig
NettyTransporters
该方法主要是针对每一种协议进行服务的发布
doOpen()
把服务保存起来
该方法是核心:实现服务的注册和发布这里面会有很多处理逻辑• 实现对应协议的服务发布• 实现服务注册• 订阅服务重写
JavassistProxyFactory
ServiceConfig
在NettyServer中,主要是干两件事,一是组装处理链,二是doOpen开启服务这个 handler 是一个链路,它的正确组成应该是MultiMessageHandler(heartbeatHandler(AllChannelHandler(DecodeHandler(HeaderExchangeHeadler(dubboProtocol后续接收到的请求,会一层一层的处理。
NettyServer
DubboRegistry
loadRegistries
这里并不是获得一个单纯的 DubboProtocol 扩展点,而是会通过 Wrapper 对 Protocol 进行装饰,装饰器分别为:QosProtocolWrapper/ProtocolListenerWrapper/ProtocolFilterWrapper/DubboProtocol
ProxyFactory&Adative
ServiceBean
在这个方法里首先就是做了URl的组装工作
RegistryProtocol
0 条评论
下一页