Dubbo 调用模块基本组成


一、Dubbo调用模块概述:

dubbo调用模块核心功能是发起一个远程方法的调用并顺利拿到返回结果,其体系组成如下:

  1. 透明代理: 通过动态代理技术,屏蔽远程调用细节以提高编程友好性。
  2. 负载均衡: 当有多个提供者是,如何选择哪个进行调用的负载算法。
  3. 容错机制: 当服务调用失败时采取的策略
  4. 调用方式: 支持同步调用、异步调用

二、dubbo内部模块分析

二、负载均衡

Dubbo 目前官方支持以下负载均衡策略:

  1. 随机 (random):按权重设置随机概率。此为默认算法.
  2. 轮循 (roundrobin):按公约后的权重设置轮循比率。
  3. 最少活跃调用数 (leastactive):相同活跃数的随机,活跃数指调用前后计数差。
  4. 一致性Hash (consistenthash ):相同的参数总是发到同一台机器

一致性Hash 和memerycached 框架差不多,redis才用的是hash slot.
为了解决一致性hash的热点数据问题,dubbo采用了默认160个虚拟节点来尽可能平均分配

二、dubbo内部模块分析

三、容错

Dubbo 官方目前支持以下容错策略:

  1. 失败自动切换: 调用失败后基于retries=“2” 属性重试其它服务器
  2. 快速失败: 快速失败,只发起一次调用,失败立即报错。
  3. 勿略失败: 失败后勿略,不抛出异常给客户端。
  4. 失败重试: 失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作
  5. 并行调用: 只要一个成功即返回,并行调用指定数量机器,可通过 forks=“2” 来设置最大并行数。
  6. 广播调用: 广播调用所有提供者,逐个调用,任意一台报错则报错

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-12
  • 2022-12-23
  • 2021-12-18
  • 2021-06-18
猜你喜欢
  • 2021-06-24
  • 2021-10-19
  • 2021-04-16
  • 2021-05-30
  • 2021-09-27
  • 2022-01-02
  • 2022-03-09
相关资源
相似解决方案