http://blog.csdn.net/hongweigg/article/details/52925920

http://m.blog.csdn.net/article/details?id=51137364


<dubbo:reference cluster="failfast" />

常见容错机制:failover ,failsafe,failfase ,failback,forking,来源于阿里的定义。

  • Failover 失败自动切换

当出现失败,重试其它服务器,通常用于读操作(推荐使用)。 重试会带来更长延迟。

  • Failfast  快速失败

只发起一次调用,失败立即报错,通常用于非幂等性的写操作。 如果有机器正在重启,可能会出现调用失败 。

  • Failsafe 失败安全

出现异常时,直接忽略,通常用于写入审计日志等操作。 调用信息丢失 可用于生产环境 Monitor。

  • Failback  失败自动恢复

后台记录失败请求,定时重发。通常用于消息通知操作 不可靠,重启丢失。 可用于生产环境 Registry。

  • Forking  并行调用多个服务器

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

  • Broadcast 

广播调用,所有提供逐个调用,任意一台报错则报错。通常用于更新提供方本地状态 速度慢,任意一台报错则报错 。 


在实际项目中,生产环境中,我们用failover模式时可以这样设计服务接口,遵循接口隔离原则 ,查询服务与写操作服务隔离,

查询接口我们可以配置retries="2" 

在写操作接口我们配置retries="0" ,如果不设置为0, 超时,会重新连接,会出现重复写的情况,所以使用failover模式时,我们要进行读写操作接口隔离,且写操作接口retries=0