一、简介
使用fegin进行微服务之间的调用时,不同的微服务依赖关系会越来越复杂,那如果某一个节点的发生故障,并且有大量请求的时候,可能会给上层调用的微服务带来很大的压力。这时候就需要熔断机制,当某个微服务发生异常时,尽快的返回错误码。
二、环境搭建
上一个工程
在这个工程的基础上进行调整。
三、源码
Service的接口,当接口发生异常时,直接调用fallback返回异常
/**
* 调用Hystrix的微服务,用于验证熔断器
* Created by MHm on 2019/8/21.
*/
@FeignClient(value = "bg-cloud-zipkin",fallback = FeignApiFallBack.class)
public interface HystrixService {
//服务中方法的映射路径
@RequestMapping(value = "/test",method = RequestMethod.GET)
String test();
}
fallback实现service的接口
/**
* 熔断器
* Created by MHm on 2019/8/30.
*/
@Component
public class FeignApiFallBack implements HystrixService{
@RequestMapping("/test")
public String test(){
return "failed";
}
}
四、运行
直接请求test3接口,运行情况如下: