Dubbo 路由规则和权重的生效时机

简介:

集群容错

  • 这里的 Invoker 是 Provider 的一个可调用 Service 的抽象,Invoker 封装了 Provider 地址及 Service 接口信息
  • Directory 代表多个 Invoker,可以把它看成 List ,但与 List 不同的是,它的值可能是动态变化的,比如注册中心推送变更
  • Cluster 将 Directory 中的多个 Invoker 伪装成一个 Invoker,对上层透明,伪装过程包含了容错逻辑,调用失败后,重试另一个
  • Router 负责从多个 Invoker 中按路由规则选出子集,比如读写分离,应用隔离等
  • LoadBalance 负责从多个 Invoker 中选出具体的一个用于本次调用,选的过程包含了负载均衡算法,调用失败后,需要重选

生效时机

  • 路由规则(包括条件路由和标签路由)生效的时机在于生成invoker的过程,如上图中的Router过程,路由规则会影响invoker对象的生成,例如某个service有providerA和providerB,但是路由规则规定consumer侧只能访问providerB,那么在这种情况下只会生成providerB对应的invoker对象。
  • 如果遇到No provider available for the service的错误,建议按照下面的步骤去排查,先确认service对应的provider是否存在,再排查provider和consumer的version和group是否一致,最后排查是否有条件路由影响。
  • 权重调整的生效时机其实是在负载均衡的选择invokder的过程中,如上图中的LoadBalance过程,如果权重为0且provider不唯一,那么权重为0的provider不会被调用,如果provider唯一那么任何的负责均衡策略都不生效,直接返回唯一的provider进行调用。
相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
11月前
|
Dubbo 应用服务中间件 Apache
带你读《Apache Dubbo微服务开发从入门到精通》—— 二、 条件路由规则
带你读《Apache Dubbo微服务开发从入门到精通》—— 二、 条件路由规则
157 0
|
11月前
|
Dubbo 应用服务中间件 测试技术
带你读《Apache Dubbo微服务开发从入门到精通》—— 三、 标签路由规则
带你读《Apache Dubbo微服务开发从入门到精通》—— 三、 标签路由规则
196 0
|
11月前
|
负载均衡 Dubbo JavaScript
带你读《Apache Dubbo微服务开发从入门到精通》—— 四、 脚本路由规则
带你读《Apache Dubbo微服务开发从入门到精通》—— 四、 脚本路由规则
155 1
|
11月前
|
Dubbo 应用服务中间件 Apache
带你读《Apache Dubbo微服务开发从入门到精通》—— 五、 动态配置规则
带你读《Apache Dubbo微服务开发从入门到精通》—— 五、 动态配置规则
86 1
|
缓存 Dubbo Cloud Native
Dubbo 3 StateRouter:下一代微服务高效流量路由
目前 MSE 服务治理的 离群实例摘除、标签路由、金丝雀发布、全链路灰度等功能已经使用该路由方案,经过我们的压测与演练,在 CPU、RT 等方面均有不少提升,以 Demo 应用为例 (服务调用的跳数为 2,下游 30 节点,每个节点 1c2g) 其中调用 RT 提升约 6.7%。
388 1
Dubbo 3 StateRouter:下一代微服务高效流量路由
|
负载均衡 算法 Dubbo
Dubbo负载均衡和路由规则的区别
强哥的朋友最近就遇到一个问题。有如下情况:代码仓库中有一套使用Dubbo2.x编写的微服务代码CodeW,其中有一个接口方法algoCompute(Map map),这个方法可以根据传入的Map内部信息的不同,加载不同的算法模型进行计算,以此来达到同一套代码可以根据请求参数的不同处理不同需求的目的。
Dubbo负载均衡和路由规则的区别
|
存储 Dubbo Java
以为是青铜,没想到是王者的dubbo标签路由
在开发测试中我们通常会遇到多项目并行开发测试,假设应用ABCDE均为dubbo应用,需求1修改了应用A、C代码,需求2修改了应用A、B、E代码,此时如果并行测试,需求1可能会调用到需求2修改的代码上,造成测试混乱。
387 0
以为是青铜,没想到是王者的dubbo标签路由
|
Dubbo 安全 应用服务中间件
当dubbo多注册中心碰上标签路由
今天的主角是标签路由和dubbo的多注册中心。标签路由在之前的文章《以为是青铜,没想到是王者的dubbo标签路由》中已经详细介绍过,多注册中心是dubbo可以使用多个注册中心来提供或者消费服务,利用多注册中心的特性可以搭建多机房。然而很不幸,当多注册中心遇上标签路由,却产生了一个bug。
187 0
当dubbo多注册中心碰上标签路由
|
Dubbo Java 应用服务中间件
Dubbo下的多版本并行开发测试解决方案(服务路由)
Dubbo下的多版本并行开发测试解决方案(服务路由)
|
5月前
|
负载均衡 Dubbo 应用服务中间件
微服务技术系列教程(31) - Dubbo-原理及负载均衡分析
微服务技术系列教程(31) - Dubbo-原理及负载均衡分析
54 0

热门文章

最新文章