zoukankan      html  css  js  c++  java
  • Dubbo 服务集群容错配置

    Dubbo集群容错是靠配置cluster属性来做

    支持改属性的标签为<dubbo:service>,<dubbo:referece>,<dubbo:consumer>,<dubbo:provider>

    但是后两个粒度太粗,一般不采用

    该属性是可选的,默认值是failover

    以下是各种可选值及其含义:

    1.failover 失败自动切换 (缺省值)

    当出现失败时,重试其他服务器. 通常用于读操作, 但切换其他机器重试会带来更长延迟 .所以可通过retries="2"来设置重试次数 (不含第一次),retries了这么多次之后,如果还是失败,再返回失败.    实例: 有5台服务器,  在retries=2的情况下,  消费者调用A机失败, 接着重试B机, 然后又重试C机, 最后返回失败. 为了避免长延迟,可以将该值配置为0, 也就是失败马上返回,不去尝试其他机器

    为什么说这种方式通常用于读操作,而不是写操作. 因为用在写操作,可能为导致重复写

     <dubbo:service cluster="failback" retries="2"/> 或者 <dubbo:reference cluster="failback" retries="2"/>

    2.failfast 快速失败

    只发起一次调用,失败立即报错,通常用于非幂等性的写操作,比如新增记录

    非幂等性的含义是,无论发起多少次请求,最后的结果都是一样的

    3.failsafe

    失败安全,出现异常时,直接忽略。

    通常用于写入审计日志等操作

    4.failback 

    失败自动恢复, 后台记录失败请求, 定时重发, 通常用于消息通知操作

    <dubbo:service cluster="failback"/> 或者 <dubbo:reference cluster="failback"/>

    一般不用 ,可能监控中心这类应用用

    5.forking

    并行调用多个服务器,只要一个成功返回,通常用于实时性要求较高的读操作,但需要浪费更多服务资源

    可通过forks="2" 来设置最大并行数

    <dubbo:service cluster="forking" forks="2"/> 或者 <dubbo:reference cluster="forking" forks="2"/>

    6.broadcast

    广播调用所有提供者,逐个调用,任意一台报错则报错。(2.1.0开始支持)

    通常用于通知所有提供者更新缓存或日志等本地资源信息。

  • 相关阅读:
    0309. Best Time to Buy and Sell Stock with Cooldown (M)
    0621. Task Scheduler (M)
    0106. Construct Binary Tree from Inorder and Postorder Traversal (M)
    0258. Add Digits (E)
    0154. Find Minimum in Rotated Sorted Array II (H)
    0797. All Paths From Source to Target (M)
    0260. Single Number III (M)
    0072. Edit Distance (H)
    0103. Binary Tree Zigzag Level Order Traversal (M)
    0312. Burst Balloons (H)
  • 原文地址:https://www.cnblogs.com/heben/p/7887664.html
Copyright © 2011-2022 走看看