SpringCloud Alibaba系列——13Dubbo的服务治理和监听机制(上)

学习目标

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

  2. Dubbo的动态配置监听

  3. 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);
    // 

你可能感兴趣的:(SpringCloud,alibaba系列,spring,cloud,dubbo,分布式,架构,服务发现)