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

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

  • 相关阅读:
    数据库日志文件很大,如何变小!
    导出到CSV文件乱码的问题
    JQuery 常用方法一览
    马云在阿里巴巴十周年晚会上的激情演讲
    jqueryeasyui(替代 extjs) 介绍
    写一个ajax程序就是如此简单
    ASP.NET 3.5之屠龙刀
    因并发而生,因云计算而热(专家聊天实录)
    专家访谈:为什么我们需要Erlang
    《写给大家看的设计书》封面评选结果揭晓
  • 原文地址:https://www.cnblogs.com/heben/p/7887664.html
Copyright © 2020-2023  润新知