前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dubbo源码解析之集群容错架构设计 原

Dubbo源码解析之集群容错架构设计 原

作者头像
克虏伯
发布2019-04-15 14:28:32
3780
发布2019-04-15 14:28:32
举报

注:Dubbo版本是2.5.7,图1的原图在Github上,建议读者下载原图,原图清晰度高。

                                                      图1 Dubbo集群容错架构设计时序图

                                                    图2 Dubbo官网给的集群容错的架构设计图

    图2的大体意思是:先从Directory那里拿到所有的Invoker,假设为List<Invoker> s1;之后用Router过滤s1,得到List<Invoker> s2;之后用loadBalance,从s2中中取出一个Invoker r,用r进行服务调用。

    注意:Dubbo给接口注入的不是接口的实现类,而是一个代理类,图1中的InvokerInvocationHandler实现了InvocationHandler,没错,是JDK动态代理。

  • 步骤5中,从RegistryDirectory中取出所有的List<Invoker>,即上述的s1。
  • 步骤7中,用Router过滤s1,得到s2。
  • 步骤15中,用loadBalance,从s2中取出r。
  • 步骤18中,用r进行服务调用。

    上述描述较为简略,为把握主旨,省略了很多细节。接下来可以考虑分析具体细节。图2中的Directory、LoadBalance都使用了设计模式的模板模式。

    可以参考:https://www.jianshu.com/p/8e007012367e

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018/05/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档