dubbo学习(三)-dubbo的服务发布

  1. 服务发布的原理

    由前一章节我们可以知道,dubbo指定了DubboNamespaceHandler来处理配置文件中dubbo命名空间声明的bean.其中有个ServiceBean,如下图,
    image
    spring容器在启动的过程中会将自定义的schema元素dubbo:Service转换成实际的配置实现ServiceBean,该类除了继承dubbo自己的配置抽象类以外,还实现了一系列的spring接口用来参与到spring容器的启动以及bean的创建过程中去,现在我们暂时只关注它实现的ApplicationListener接口——通过该接口,ServiceBean实现了对ContextRefreshedEvent事件的监听,当Spring在初始化后调用Refresh方法时会触发ContextRefreshedEvent事件,所以ServiceBean的onApplicationEvent(ApplicationEvent event)方法被触发,在这个方法中通过调用export方法来暴露服务,在这期间会做一些检查,如果发现XML中并没有配置某些项,则加载dubbo.properties中的配置,然后再调用doExportUrls方法做服务暴露,所以我们应该重点关照这方法。

    loadRegistries(true)
    加载注册中心并统一构建成List<URL>集合

    for (ProtocolConfig protocolConfig : protocols) {
               doExportUrlsFor1Protocol(protocolConfig, registryURLs);
           }

    因为dubbo支持多协议配置,遍历所有协议分别根据不同的协议把服务export到不同的注册中心上去

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值