这是今天的第三篇文章,继续讲解springcloud-hystrix熔断降级相关的知识
上一节讲解了hystrix熔断的应用
这一节讲一下hystrix降级的应用,何为降级,当远程调用的服务宕机了的时候,404或者500
这个时候就使用到了降级处理,下面讲解一下hystrix中如何使用降级,并且和fegin进行结合
1、springcloud的配置文件中打开fegin对hystrix的支持
feign:
# 开启feign对hystrix熔断降级的支持
hystrix:
enabled: true
# 修改调用超时时间
client:
config:
default:
connectTimeout: 500
readTimeout: 500
2、新建一个ProductClientFallback类实现ProductClient接口,里面实现降级的方法,可以是输出日志也可以是返回假数据
package pafc.cloud.feignclient.fallback;
import org.springframework.stereotype.Component;
import pafc.cloud.feignclient.service.ProductClient;
@Component
public class ProductClientFallback implements ProductClient {
@Override
public Object getAllGoods() {
System.out.println("订单服务,调用商品服务异常");
return null;
}
}
3、在ProductClient的远程调用接口上面,配置fallback 实现对降级方法的配置
package pafc.cloud.feignclient.service;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import pafc.cloud.feignclient.fallback.ProductClientFallback;
@FeignClient(value ="EUREKA-CLIENT-GOODS",fallback = ProductClientFallback.class)
public interface ProductClient {
@GetMapping("queryGoods/allGoods")
public Object getAllGoods();
}
4、下面将商品服务eureka-client-goods停掉,测试降级服务
结果如下图所示,成功地进行了降级