一 引入sentinel的依赖
<!-- 服务容错 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
二 开启sentinel支持
在service_edu的yml配置文件中开启Feign对Sentinel的支持
feign:
sentinel:
enabled: true
三 创建容错类
@Service
@Slf4j
public class OssFileServiceFallBack implements OssFileService {
/**
* 功能描述:服务降级方法
*
* @author cakin
* @date 2020/11/29
* @return R 返回给前端的数据
*/
@Override
public R test() {
return R.error();
}
/**
* 功能描述:删除图像服务降级方法
*
* @author cakin
* @date 2020/11/29
* @param url 图像的ulr地址
* @return R 返回给前端的数据
*/
@Override
public R removeFile(String url) {
log.info("熔断保护");
return R.error();
}
}
四 指定容错类
为OpenFeign远程调用接口添加fallback属性值指定容错类
@Service
@FeignClient(value = "service-oss", fallback = OssFileServiceFallBack.class)
public interface OssFileService {
五 测试
1 停oss服务
2 删除讲师
日志打印:
2020-11-29 18:57:50 |INFO |http-nio-8110-exec-7 |DynamicServerListLoadBalancer.java:150 |com.netflix.loadbalancer.DynamicServerListLoadBalancer |DynamicServerListLoadBalancer for client service-oss initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=service-oss,current list of Servers=[],Load balancer stats=Zone stats: {},Server stats: []}ServerList:com.alibaba.cloud.nacos.ribbon.NacosServerList@1cc70ac3
2020-11-29 18:57:50 |INFO |http-nio-8110-exec-7 |OssFileServiceFallBack.java:23 |com.atguigu.guli.service.edu.feign.fallback.OssFileServiceFallBack |熔断保护
来源:oschina
链接:https://my.oschina.net/u/4272511/blog/4759456