有个场景要通过http调用外部系统的接口,那个外部系统在压力大的时候可能会返回超时,例如信安审核相关的。这时候业务处理可能就会报错,在这个时间段就算不断去重试也是会不断报错的,意义不大。所以想能否直接通过这个环节让业务进行下去,相当于一个服务降级。刚开始的思路是写两个接口,一个正常逻辑,一个是直接跳过这个外部调用,使用类似Hystrix的组件进行降级。后面经过提点发现还有更简单的方案:外部接口通过http调用,在http调用工具类里面加上一层逻辑,如果调用失败在一个本地缓存中(可以是map)记录,当该接口在短时间内失败一定次数的时候,修改http的response,给调用上层返回成功,让业务能够继续进行。
一个简单的接口降级方式
最新推荐文章于 2024-07-12 20:50:54 发布