Dubbo服务注册到Zookeeper,对外提供服务的实际类 ref(如:SleepServiceImpl)保存在哪里

  Dubbo服务注册到Zookeeper,其注册的内容为实际对外提供的服务的实现。这个实现保存在哪里(至于具体客户端使用时怎么取后后续阐述)?可以看看Dubbo如何处理的。

  对于@DubboService注解的bean,其实现的父类接口的注册由ServiceClassPostProcessor的registerServiceBean方法提供:

    

     

  实际上就是通过实现类的BeanDefinition为接口类的bean——ServiceBean赋值,并保存到BeanDefinitionMap。但是目前看这个实现有个小问题:如果一个服务接口有多个实现,只能保存第一个被注册的实现类名作为ref等值的内容,后续无论识别多少其实都不会注册到BeanDefinitionMap中了。在实际的生产中一个服务接口只有一个服务实现是个小概率事件吧。

  这个问题Dubbo怎么处理的?请听下回分解O(∩_∩)O哈哈~

posted on 2021-08-11 10:33  池塘里洗澡的鸭子  阅读(114)  评论(0编辑  收藏  举报