SpringCloud学习心得---降级机制
8.2服务降级机制服务降级处理是在客户端(Consumer 端)实现完成的,与服务端(Provider 端)没有关系。
当某个 Consumer 访问一个 Provider 却迟迟得不到响应时执行预先设定好的一个解决方案,
而不是一直等待。
8.2.1 common 工程:依赖
```
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
```
8.2.2 common 工程 com.study.spring.cloud.factory.MyFallBackFactory
/**
* 1.实现Consumer端服务降级功能
* 2.实现FallbackFactory接口时要传入@FeignClient注解标记的接口类型
* 3.在create()方法中返回@FeignClient注解标记的接口类型的对象,当Provider调用失败后,会执行这个对象的对应方法
* 4.这个类必须使用@Component注解将当前类的对象加入IOC容器,当然当前类必须能够被扫描到
* @AuThor Lenovo
*
*/
@Component
public class MyFallBackFactory implements FallbackFactory<EmployeeRemoteService> {
@Override
public EmployeeRemoteService create(Throwable cause) {
return new EmployeeRemoteService() {
@Override
public Employee getEmployeeRemote() {
return null;
}
@Override
public ResultEntity<Employee> getEmpWithCircuitBreaker(String signal) {
return ResultEntity.failed("降级机制生效:" + cause.getMessage());
}
@Override
public List<Employee> getEmpListRemote(String keyword) {
return null;
}
};
}
}
8.2.3 common 工程:Feign 接口添加:
@FeignClient(value = "study-provider", fallbackFactory = MyFallBackFactory.class)
8.2.4 consumer 工程:application.yml
```
feign:
hystrix:
enabled: true
```
8.2.4测试
正常访问:
provider停掉访问:
好高端谢谢提供好好学习了 感谢分享,学习了
页:
[1]