Dubbo学习笔记1-服务启动

暴露服务。类似平时网络编程写server,需要打开socket,监听端口等。只不过RPC有整套的封装。下面我们通过断点跟随源码,梳理下整个流程。

采用某种技术(spring?)获取到服务相关的所有配置后,就到了暴露服务的入口函数ServiceBean.afterPropertiesSet,接下来的调用链条是:
ServiceConfig.export ->
ServiceConfig.doExport ->
ServiceConfig.doExportUrls->
ServiceConfig.doExportUrlsFor1Protocol
ProxyFactory.getInvoker(ref, (Class) interfaceClass, url) // 获得invoker
Protocol.export(invoker) // 暴露服务?

Exchangers.bind(url, requestHandler) //
Transporters.bind(url, handler)
NettyTransporter.bind(url, ChannelHandler)
NettyServer.dopen()

相关细节分析

  1. ProtocolListenerWrapper 和 ProtocolFilterWrapper(串联filter调用链)
  2. spring加载启动一大堆
  3. ProxyFactory.getInvoker(ref, (Class) interfaceClass, url)
    相关技术点:动态代理技术,代理模式
  1. 装饰模式
    服务暴露前的注册:创建同注册中心的链接,然后再走真正的服务协议暴露流程。 Protocol利用装饰模式的体现:RegistryProtocol对Protocol的包装
  1. Protocol.export相关流程

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容