1. 首先要加入pom文件
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
2. Feign是自带断路器的它没有默认打开。需要在配置文件中配置打开它,在配置文件加以下代码:
基于Properties文件需要加上以下配置:
feign.hystrix.enabled=true
基于.yml配置文件 需要加入以下配置:
# feign配置
feign:
hystrix:
# 在feign中开启hystrix功能,默认情况下feign不开启hystrix功能
enabled: true
3. 接下来我们去创建一个一但服务器之间调用出现异常会回调我们这个方法的类
创建一个SchedualServiceHiHystric 并实现你的feign调用的方法 implements FeignUserService具体如下:
每个人的返回提示的友好方式不一样这里我选择的是 support返回 这是我们项目的返回封装类 你也可以自定义 没有限制
4. 现在我们把项目中用到跨服务调用的feign接口加入@FeignClient注解 如果服务宕机或者在升级这时就回调(fallback)我们的第3步返回友好信息,具体如下:
5. 好了接下来就是哪里用到调用的方法就在哪里判断(判断的依据你可以自定义code值)并返回断路器中的返回信息就可以了。
6. 总结:
分布式服务在遇到大量请求导致某个服务器宕机的情况会及时给用户弹出友好的提示这样就不会出现后台报错 用户蒙圈的事件发生
还有如果某个服务器需要更新代码或者升级可以先停掉服务断路器检测不到调用的服务也会给出相应的友好提示,提高用户体验度,减少客户一直请求的操作
从而减轻服务器压力…….