dubbo 服务消费者

使用dubbo的时候,xml文件中定义了一个消费者,但是在代码中并么使用到此消费者,临到上线才发现持有消费者的进程并没有向注册中心写入consumer URL,甚不解,查阅源码后方得到答案,这是正常,符合dubbo的工作原理

xml

    <dubbo:reference id="merchantShopService" interface="com.qbao.enterprise.api.service.MerchantShopService" version="1.0" />

 此service并没有在代码中被使用,比如autowired,applicationContext.get(XX)获取之

------------------------

因为被引入的远程服务没有被真正的使用,按照dubbo的工作原理,refer远程服务只有在referenceService被使用的时候才会触发往注册中心写地址  ==》 所以没有被使用的消费者它的URL不会被登记到注册中心

dubbo:reference --> RefenceConfig  --> get() 返回供应用层使用的接口实现对象,此对象的底层是(代理对象,cluster,remoting)等

基本原理:



 



 

 

 

 --------------------------------

ReferenceBean 实现了FactoryBean接口,只有当getObject() 被调用时(referenceService被使用了)才会触发init,才会触发真正的refer流程,导致consumer URL被登记到注册中心

猜你喜欢

转载自curious.iteye.com/blog/2290317
今日推荐