美文网首页
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