美文网首页
Dubbo集群容错源码分析

Dubbo集群容错源码分析

作者: 蜗牛DWade | 来源:发表于2019-04-04 10:19 被阅读0次

    简介

    时序图

    image.png

    服务字典

    1. 继承体系


      Directory的继承图.jpg
    2. 源码分析
    public List<Invoker<T>> doList(Invocation invocation) {
    ....
     List<Invoker<T>> invokers = null;
            try {
                // 从缓存中获取调用器,只执行运行时路由器
                invokers = routerChain.route(getConsumerUrl(), invocation);
            } catch (Throwable t) {
                logger.error("Failed to execute router: " + getUrl() + ", cause: " + t.getMessage(), t);
            }
       return invokers == null ? Collections.emptyList() : invokers;
    ....
    }
    
    • RegistryDirectory是一种动态服务目录,实现了NotifyListener接口。
      当注册中心服务配置发生变化后,RegistryDirectory可收到与当前服务相关的变化
      收到变更通知后,RegistryDirectory可根据配置变更信息刷新Invoker列表
      • 列举Invoker
        Invoker 列举逻辑封装在 doList 方法中
      • 接收服务变更通知
        RegistryDirectory 是一个动态服务目录,会随注册中心配置的变化进行动态调整
        服务变更通知封装在notify方法中
      • 刷新 Invoker 列表
        refreshInvoker 方法是保证 RegistryDirectory 随注册中心变化而变化的关键所在

    相关文章

      网友评论

          本文标题:Dubbo集群容错源码分析

          本文链接:https://www.haomeiwen.com/subject/yptzbqtx.html