社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
微服务架构中服务之间互相调用,单个服务通常会集群部署,由于网络等原因,服务不能保证 100% 可用,如果单个服务出现问题会出现请求的堆积,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。
一个请求需要调用多个服务。
如果一个服务出现故障,如服务A故障,短路会被打开,然后走 FallBack 之后的方法。
Feign是自带断路器,只需要配置一下。
整个工程可以参考我的这篇博文:https://blog.csdn.net/qq_38737992/article/details/102525408。
添加下面的 配置:
feign.hystrix.enabled=true
添加 fallback 的方法,fallback = HelloWorldHystrix.class:
/**
* @author syrdbt
* @date 2019-10-12
*/
@FeignClient(name = "service-hi", fallback = HelloWorldHystrix.class)
public interface HelloFeign {
@RequestMapping(value="/hello")
String hello();
}
HelloWorldHystrix.java如下所示:
/**
* @author syrdbt
* @date 2019-10-17
*/
@Component
public class HelloWorldHystrix implements HelloFeign {
@Override
public String hello() {
return "sorry";
}
}
启动注册中心和服务,访问注册中心 ,注册的实例如下图所示:
访问 http://localhost:8765/hello,如下图所示:
关闭 Hi-Service 服务:
访问 http://localhost:8765/hello,如下图所示:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!