Java面试题更新 2026-08-05

Dubbo 框架提供了哪几种集群容错方案?请分别说明它们的工作机制和适用场景。

技术原理方案权衡Apache DubboJava

考察说明

考察对 Dubbo 集群容错机制的理解和记忆。

回答思路

  1. 【回答框架 1】Dubbo 集群容错机制是一套在服务调用失败时处理异常的方案。它主要有 Failover、Failfast、Failsafe、Failback 和 Forking 五种。Failover 是默认的容错策略,调用失败后自动切换到其他 Provider 节点重试,适用于读操作或幂等写操作,但会增加响应延迟。
  2. 【回答框架 2】Failfast 是快速失败,一次调用失败立即抛出异常,适用于非幂等写操作,如新增或删除记录,以避免重复提交。Failsafe 是安全失败,调用失败后直接吞掉异常并返回空结果,适用于日志记录或消息通知等不影响主流程的调用。
  3. 【回答框架 3】Failback 是失败自动恢复,调用失败后返回一个空结果给消费者,并在后台定时重试,适用于异步消息通知或最终一致性的场景。Forking 是并行调用,同时向多个 Provider 发起请求,只要一个成功就返回,适用于实时性要求高、容忍资源浪费的读操作。
  4. 【回答框架 4】在配置方面,可以在服务提供者或消费者端通过 cluster 属性指定容错策略,也可以在 <dubbo:reference> 或 <dubbo:service> 中配置。选择时需结合业务特性,例如写操作避免 Failover 重试导致数据重复,读操作可用 Failover 或 Forking 提高成功率。
  5. 【关键点 1】Dubbo 默认使用 Failover 容错策略。
  6. 【关键点 2】Failfast 适用于非幂等写操作。
  7. 【关键点 3】Failsafe 会吞掉异常,适用于通知类调用。
  8. 【关键点 4】Failback 支持异步重试,常用于最终一致性。
  9. 【关键点 5】Forking 并行调用多个 Provider,适合读操作。