1.是什么
整体资源快不够了,忍痛将某些服务先关掉,待渡过难关,再开启回来。
服务降级处理是在客户端实现完成的,与服务端没有关系
修改springcloud-api工程,根据已经有的DeptClientService接口新建一个实现了FallbackFactory接
口的类DeptClientServiceFallbackFactory
【注意:这个类上需要@Component注解!!!】
2.相关的配置
修改springcloud-api工程:
根据已经有的DeptClientService接口新建一个实现了FallbackFactory接
口的类DeptClientServiceFallbackFactory
-
package com.csh.springcloud.service;
-
import com.csh.springcloud.pojo.Dept;
-
import feign.hystrix.FallbackFactory;
-
import org.springframework.stereotype.Component;
-
import java.util.List;
-
@Component
-
public class DeptClientServiceFallbackFactory implements FallbackFactory<DeptClientService> {
-
//这里提供的降级服务是当服务器崩了后停了之后客户端再来访问时还是能够访问得到降级信息,不至于服务崩溃了
-
@Override
-
public DeptClientService create(Throwable throwable) {
-
return new DeptClientService() {
-
@Override
-
public boolean addone() {
-
return false;
-
}
-
@Override
-
public Dept findbyid(int id) {
-
return new Dept().setDeptno(id).setDname(“降级”).setDb_source(“降级库”);
-
}
-
@Override
-
public List<Dept> findall() {
-
return null;
-
}
-
};
-
}
-
}
修改springcloud-api工程,DeptClientService接口在注解 @FeignClient中添加fallbackFactory属性值
- @FeignClient(value = "SPRINGCLOUD-PROVIDER-DEPT",fallbackFactory = DeptClientServiceFallbackFactory.class)
在consumer中修改yml文件:
feign:
hystrix:
enabled: true
3.测试一下