Feign整合Sentinel配置实现流控熔断兜底数据返回
首先描述下场景:A订单服务 B视频服务,当订单服务调用视频服务的时候因某些原因触发了流控或者熔断,那么订单服务获取到视频服务的接口将会是500等不友好的信息。
比如这种:
现在可以通过Feign,给出现这种情况的调用返回一些兜底结果,代码如下:
引入依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency>
开启Feign对Sentinel的支持
feign: sentinel: enabled: true
创建容错类, 实现对应的服务接口, 记得加注解 @Service
容错类和对应的接口可以一样,容错对应的接口就可以了。内容可以按照自己想要展示的来定义
举例:
import net.wnn.domain.Video; import net.wnn.service.VideoService; import org.springframework.stereotype.Service; @Service public class VideoServiceFallback implements VideoService { @Override public Video findById(int videoId) { Video video = new Video(); video.setTitle("这个是Fallback里面的视频"); return video; } @Override public int save(Video video) { return 0; } }
配置feign容错类:fallback = VideoServiceFallback.class
这样就有兜底数据返回啦,下游接口出错的时候,不至于返回500等太不友好了。
上一篇:
IDEA上Java项目控制台中文乱码