美文网首页
dubbo 源码分析 5

dubbo 源码分析 5

作者: 想54256 | 来源:发表于2020-06-09 09:29 被阅读0次

title: dubbo 源码分析 5
date: 2020/06/03 10:22


本节内容

我们从这节开始将分析 Dubbo 集群容错方面的源码。

集群容错源码包含四个部分,分别是服务目录 Directory、服务路由 Router、集群 Cluster 和负载均衡 LoadBalance。

本节先说一下服务目录(Directory)

注:这部分我应该就不会跟着写了。

服务目录

还记得这个调用链(服务调用时调用)吧,我们今天先看一下 FailoverClusterInvoker。

当服务消费者调用服务提供者的时候:

注意:下面讲的都是服务消费者对于 Directory 的操作。服务提供者对 Directory 的操作无非是向目录中写点数据。

image image image image image

那么问题来了,methodInvokerMap 中的数据是怎么放进去的呢

RegistryDirectory 是一个动态服务目录,会随注册中心配置的变化进行动态调整。因此 RegistryDirectory 实现了 NotifyListener 接口,通过这个接口获取注册中心变更通知。

一个 RefrenceBean 对象对应着一个 Directory 对象,当 RefrenceBean 对象对应的 zookeeper 目录数据变更就会出触发这个监听器

image image image

tag1 toInvokers(invokerUrls);

image image

拼接后的 url 并不是最终请求的地址,截图中写错了,目前来看他只是作为了 invoker 们的 key。

tag2 toMethodInvokers(newUrlInvokerMap);

获取当前接口拥有的所有方法(通过 url),装入 map 中

现在知道 methodInvokerMap 中的数据是怎么来的了吧,结束了

相关文章

网友评论

      本文标题:dubbo 源码分析 5

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