学习目标

Dubbo的服务上下线流程以及动态感知

Dubbo的动态配置监听

Dubbo的路由监听

第1章 服务上线下线监听

1.1 监听注册

1.1.1 说明

以cn.enjoy.service.UserService接口的上线下线为例。

服务的上线会在/dubbo/cn.enjoy.service.UserService/providers节点下写入相应的dubbo协议的节点数据,下线就会删除该节点的数据,那么是如何注册对该节点的监听的呢?我们来分析一下源码

1.1.2 源码分析

学过zookeeper的同学应该都知道,如果要监听一个节点的数据变更,就只要客户端注册一个对该节点的监听就可以了,我们来看看dubbo是如何注册监听的。首先我们应该知道,当providers节点发生了数据变更应该通知给谁,肯定是要通知给消费方的,所以这里的客户端指的就是消费方,那么我们只要看看消费方的protocol.refer方法,在服务引用的时候注册了监听。代码最终来到了RegistryProtocol中的doCreateInvoker方法。

protected ClusterInvoker doCreateInvoker(DynamicDirectory directory, Cluster

cluster, Registry registry, Class type) {

directory.setRegistry(registry);

directory.setProtocol(protocol);

//

参考链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: