dubbo源码学习-服务暴露原理

在dubbo中,服务提供者暴露服务配置。对应的配置类:com.alibaba.dubbo.config.ServiceConfig

项目整体启动的时候,入口类是 com.alibaba.dubbo.config.spring.schema.DubboNamespaceHandler,这个地方初始化的是ServiceBean.clas 也即ServiceConfig的子类,ServiceBean类实现了InitializingBean接口,重写了afterPropertiesSet()方法,afterPropertiesSet()方法是在spring管理的类初始化之后调用的方法,在afterPropertiesSet()方法中调用了ServiceConfig类的export()方法,在export()方法中,调用了doExport(),可见核心逻辑在doExport()中,保留核心逻辑如下:


dubbo源码学习-服务暴露原理_第1张图片
1 doExport()方

保留了核心逻辑,上面代码主要做的事情就是校验各种配置项,之后调用核心方法doExportUrls()暴露服务,下面贴出doExportUrls方法的代码,也是保留核心逻辑


dubbo源码学习-服务暴露原理_第2张图片
2 doExportUrls

在这个方法中,我注释的是程序实际运行时的入参,项目地址在 demo项目地址,这个项目是我fork的dubbo源码,并且加入学习时候的注释,逻辑也很简单,就是首先获取所有的注册地址,之后遍历所有的协议配置,依次将各协议的服务暴露给注册中心

你可能感兴趣的:(dubbo源码学习-服务暴露原理)