Dubbo源码分析之ReferenceBean的初始化(二)

本文深入探讨了Dubbo的ReferenceBean如何获取并转换Zookeeper上的服务提供者URL,详细分析了从订阅服务到生成可调用Invoker的过程。涉及RegistryProtocol的doRefer方法、ZookeeperRegistry的订阅机制、 FailbackRegistry的重试机制,以及最终通过DubboProtocol创建DubboInvoker并执行RPC调用的细节。

上一篇文章对ReferenceBean的初始化的过程有了初步了解,下面我们深入分析它是如何获取zookeeper上service provider的url地址的,并转换成可调用的invoker的。

回到RegistryProtocol类中doRefer方法中,我们看到如下代码directory订阅节点信息。

directory.subscribe(subscribeUrl.addParameter(CATEGORY_KEY,PROVIDERS_CATEGORY + "," + CONFIGURATORS_CATEGORY + "," + ROUTERS_CATEGORY));

跟踪代码至RegistryDirectory的subscribe方法,实际调用registry的订阅方法,此处为ZookeeperRegistry,并将当前RegistryDirectory实例对象当做监听器参数传入。

    public void subscribe(URL url) {
        setConsumerUrl(url);
        CONSUMER_CONFIGURATION_LISTENER.addNotifyListener(this);
        serviceConfigurationListener = new ReferenceConfigurationListener(this, url);
        registry.su
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值