美文网首页dubbo
Dubbo 路由规则和权重的生效时机

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

作者: 晴天哥_王志 | 来源:发表于2020-01-08 20:05 被阅读0次
    集群容错
    • 这里的 Invoker 是 Provider 的一个可调用 Service 的抽象,Invoker 封装了 Provider 地址及 Service 接口信息
    • Directory 代表多个 Invoker,可以把它看成 List<Invoker> ,但与 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进行调用。

    相关文章

      网友评论

        本文标题:Dubbo 路由规则和权重的生效时机

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