美文网首页
Dubbo cluster 容错具体流程

Dubbo cluster 容错具体流程

作者: 常晓csc | 来源:发表于2020-08-19 15:16 被阅读0次

    一、AbstractClusterInvoker invoke (类、方法)

    1. 检测是否销毁 (checkWhetherDestroyed();)
    2. 获取invoke 列表 初始化负载均衡策略
    3. <pre style="margin: 0px;">doInvoke (抽象方法,具体容错策略实现)</pre>

    二、****举例:FailoverClusterInvoker doInvoke

    1. <pre style="margin: 0px;">checkInvokers() 判空,</pre>

      <pre style="margin: 10px 0px 0px;">//TODO 获取重试次数 int len = getUrl().getMethodParameter(methodName, RETRIES_KEY, DEFAULT_RETRIES) + 1;</pre>

    2. <pre style="margin: 0px;">循环重试次数 二次检查是否销毁,获取最新invoke列表 </pre>

    3. 根据传入的负载均衡策略选择一个invoker

    **三、AbstractClusterInvoker select **

    粘滞连接:用于有状态服务,尽可能让客户端总是向同一提供者发起调用

    1. 首次调用记录Invoker

    2. 下次调用,先判断之前是否已经调用用该invoker,若已经调用过,则直接使用

    [图片上传中...(image-cd8a14-1597821378831-0)]

    四、AbstractClusterInvoker doselect

    通过具体的负载均衡策略选择具体的invoker

    <pre style="margin: 10px 0px 0px;">Invoker<T> invoker = loadbalance.select(invokers, getUrl(), invocation); </pre>

    判断invoker 是否可用 或者是限制内 可能发起重新选择 reselect (选择不再

    <pre style="margin: 10px 0px 0px;">selected列表内 & 可用,通过负载均衡策略在选择一次</pre>

    相关文章

      网友评论

          本文标题:Dubbo cluster 容错具体流程

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