宽屏
服务降级是当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。
代码部分:
1.在springcloud-api项目的com.allen.springcloud.service包下面新建编写DeptClientServiceFallbackFactory。

package com.allen.springcloud.service;
import com.allen.springcloud.pojo.Dept;
import feign.hystrix.FallbackFactory;
import org.springframework.stereotype.Component;
import java.util.List;
//降级
@Component
public class DeptClientServiceFallbackFactory implements FallbackFactory {
@Override
public DeptClientService create(Throwable throwable) {
return new DeptClientService() {
@Override
public Dept queryById(Long id) {
return new Dept()
.setDeptno(id)
.setDname("id=>" + id + "没有对应的信息,客户端提供了降级的信息,这个服务现在已经被关闭")
.setDb_source("没有数据");
}
@Override
public List<Dept> queryAll() {
return null;
}
@Override
public boolean addDept(Dept dept) {
return false;
}
};
}
}2.修改DeptClientService接口的注解。
3.修改springcloud-consumer-dept-feign配置文件application.yml,开启服务降级。

#开启降级feign.hystrix feign: hystrix: enabled: true
4.依次启动服务,测试。

首先是开启8001端口的服务,进行接口测试,是可以正常拿到数据的。

这时候我们关闭8001服务,再次调用接口,服务已经被降级处理了。
