这是用来处理 集群中出现错误的方式。
集群容错模式:
**Failover Cluster:**失败重试。默认值。当出现失败,重试其它服务器,默认重试2次,使用retries配置。一般用于读操作
**Failfast Cluster *快速失败,发起-次调用,失败立即报错。通常用于写操作。
**Failsafe Cluster:**失败安全,出现异常时,直接忽略。返回一个空结果。
**Failback Cluster:**失败自动恢复,后台记录失败请求,定时重发。
**Forking Cluster *并行调用多个服务器,只要一个成功即返回。
Broadcast Cluster: 广播调用所有提供者,逐个调用,任意一台报错则报错。
Cluster 意思是集群
集群容错也是在dubbo的 自动注入注解中,通过属性来指定相关的容错模式的
public class UserController {
//cluster = "failover" 指定集群 的容错模式为 Failover
// 失败重试。默认值。当出现失败,重试其它服务器,默认重试2次,使用retries配置。一般用于读操作
@Reference(cluster = "failover")//远程注入
private UserService userService;
是将 不重要的服务降级,将资源让给重要的服务使用。
当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作
服务降级方式:
mock= force:return null:表示消费方对该服务的方法调用都直接返回null值,不发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响。
mock=fail:return null:表示消费方对该服务的方法调用在失败后,再返回null值,不抛异常。用来容忍不重要服务不稳定时对调用方的影响
public class UserController {
//cluster = "failover" 指定集群 的容错模式为 Failover
// 失败重试。默认值。当出现失败,重试其它服务器,默认重试2次,使用retries配置。一般用于读操作
@Reference(mock = "fail:return null")//远程注入
private UserService userService;
mock = “fail:return null” 也是在远程自动注入的注解,写属性,给出具体的降级的 语句体 - 降级方式