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开始支持)

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

  • 相关阅读:
    max key length is 1000 bytes
    205 Reset Content
    The Path Attribute
    track message forwards, avoiding request loops, and identifying the protocol capabilities of all senders along the request/response chain
    test hypertext links for validity, accessibility, and recent modification
    ES6 will change the way you write JS code.
    ECMAScript Web APIs node.js
    Symbols
    HTML/Elements/base
    frag General URL components
  • 原文地址:https://www.cnblogs.com/heben/p/7887664.html
Copyright © 2011-2022 走看看