zoukankan      html  css  js  c++  java
  • dubbo源码-服务抽象directory

    directory为一个引用服务的抽象,内部维护了服务提供者列表以及服务的路由和更新功能,包含类如下:

     Directory是最上层接口,主要定义了三个基本接口:getInterface表示该directory对应的服务;list返回该directory可用的服务提供者列表;getConsumerUrl定义返回该directory的消费者,因为directory功能只会在消费端使用,所以这里维护了一个消费者信息。

    AbstractDirectory维护了路由功能和消费者信息。

    StaticDirectory很好理解,就是内部维护了一个静态的服务提供者列表。

    DynamicDirectory和StaticDirectory的区别是内部维护的服务提供者列表是静态的还是动态更新的,StaticDirectory在创建时就定义好invoker list,DynamicDirectory内部会维护一个注册中心registry类,并且定义了订阅和取消订阅的方法,底层会使用registry进行服务订阅操作,并且DynamicDirectory还实现了NotifyListener接口,在执行订阅的时候还把自己的notify方法注册上去,这样在服务提供者有变更的时候就会执行notify方法去更新内部的服务提供者列表信息。

    RegistryDirectory和ServicediscoveryRegistryDirectory是DynamicDirectory的子类,主要定义了具体notify的逻辑,区别是RegistryDirectory不光会更新服务提供者,还可以从注册中心拿配置和路由相关信息。

  • 相关阅读:
    C#随笔
    C# 程序间通信的各种途径及解析
    C#控件根据窗体改变大小
    c# SqlHelper Class
    初始Java
    函数基础
    基本数据类型的高级特性:
    python基础
    C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
    Oracle使用dblink导入数据
  • 原文地址:https://www.cnblogs.com/caiyao/p/14949139.html
Copyright © 2011-2022 走看看