dubbo集群容错之directory目录

directory接口的实现类有两个:StaticDirectory,RegistryDirectory。其中StaticDirectory中的Static关键词来看,就知道,这个其实是不会动态变化的,从下图知道,他的Invoker是通过构造函数传入,StaticDirectory用得比较少,主要用在服务对多注册中心的引用

官网:Directory 代表多个 Invoker,可以把它看成 List<Invoker> ,但与 List 不同的是,它的值可能是动态变化的,比如注册中心推送变更。

鉴于官网居多介绍动态目录,咱们着重RegistryDirectory,先来看看继承关系图

其中NotifyListener中的notify方法就是注册中心的回调,也就是为什么能根据注册中心动态变化的根源所在

怎么获取的invokers吗?是从methodInvokerMap中获取的,但是仅仅是读操作,那么写操作是在什么时候进行的呢!就是在回调notify方法的时候!!!

 意思就是当注册中心发生改变时,就会更新methodInvokerMap和urlInvokerMap的值。这就回应了官网的“它的值可能是动态变化的,比如注册中心推送变更”这句话。

猜你喜欢

转载自blog.csdn.net/z15732621582/article/details/81071441