1、背景
在上一篇SpringCloud系列–Hystrix(1)简介和概念中我们介绍了Hystrix服务降级的概念以及介绍了如何使用Hystrix,但是给出的示例还存在一些问题:
- 降级方法与业务方法写在了一块,耦合度高;
- 每个业务方法都写了一个降级方法,重复代码多。
接下来我们介绍如何解决上述两个问题。
2、全局的降级方法
解决重复代码的问题:
- 配置一个全局的降级方法,所有方法都可以走这个降级方法,至于某些特殊创建,再单独创建方法。
集成Hystrix的操作在SpringCloud系列–Hystrix(1)简介和概念中已经叙述,这里就不赘述,仅介绍需要修改的部分。
2.1、创建一个全局方法
// 下面是全局fallback方法
public String payment_Global_FallbackMethod()
{
return "Global异常处理信息,请稍后再试,/(ㄒoㄒ)/~~";
}
2.2、注解指定全局降级方法(默认降级方法)
在服务调用类上添加注解@DefaultProperties,参数defaultFallback指定为默认降级方法,当业务类没有指定降级方法,就使用这个方法作为降级方法(payment_Global_FallbackMethod为降级方法的方法名):
@DefaultProperties(defaultFallback = "payment_Global_FallbackMethod")
在方法需要返回错误信息的服务调用方法上直接加入注解即可:
@HystrixComman
示例如下:
@RestController
@Slf4j
@DefaultProperties(defaultFallback = "payment_Global_FallbackMethod")
public class
SpringCloud Hystrix:全局降级处理实践

本文介绍了如何在SpringCloud中使用Hystrix进行全局降级处理,以减少代码重复和提高代码耦合度。首先,通过创建全局降级方法,解决了每个业务方法都需要单独写降级方法的问题。然后,通过创建一个类实现服务接口并配置降级策略,实现了在服务不可用时的优雅降级,避免了500错误,提升了用户体验。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



