当前位置:网站首页>OpenFeign实现降级
OpenFeign实现降级
2022-07-30 03:25:00 【Leon_Jinhai_Sun】
Hystrix也可以配合Feign进行降级,我们可以对应接口中定义的远程调用单独进行降级操作。
比如我们还是以用户服务挂掉为例,那么这个时候肯定是会远程调用失败的,也就是说我们的Controller中的方法在执行过程中会直接抛出异常,进而被Hystrix监控到并进行服务降级。
而实际上导致方法执行异常的根源就是远程调用失败,所以我们换个思路,既然用户服务调用失败,那么我就给这个远程调用添加一个替代方案,如果此远程调用失败,那么就直接上替代方案。那么怎么实现替代方案呢?我们知道Feign都是以接口的形式来声明远程调用,那么既然远程调用已经失效,我们就自行对其进行实现,创建一个实现类,对原有的接口方法进行替代方案实现:
@Component //注意,需要将其注册为Bean,Feign才能自动注入
public class UserFallbackClient implements UserClient{
@Override
public User getUserById(int uid) { //这里我们自行对其进行实现,并返回我们的替代方案
User user = new User();
user.setName("我是替代方案");
return user;
}
}实现完成后,我们只需要在原有的接口中指定失败替代实现即可:
//fallback参数指定为我们刚刚编写的实现类
@FeignClient(value = "userservice", fallback = UserFallbackClient.class)
public interface UserClient {
@RequestMapping("/user/{uid}")
User getUserById(@PathVariable("uid") int uid);
}现在去掉BorrowController的@HystrixCommand注解和备选方法:
@RestController
public class BorrowController {
@Resource
BorrowService service;
@RequestMapping("/borrow/{uid}")
UserBorrowDetail findUserBorrows(@PathVariable("uid") int uid){
return service.getUserBorrowDetailByUid(uid);
}
}最后我们在配置文件中开启熔断支持:
feign:
circuitbreaker:
enabled: true启动服务,调用接口试试看:


可以看到,现在已经采用我们的替代方案作为结果。
边栏推荐
猜你喜欢

26 basic models in 6 categories that operators must master

Record NLP various resource URLs

【ModelArts系列】华为ModelArts训练yolov3模型(训练管理)

The relationship between the number of Oracle processes and the number of sessions

(RCE)远程代码/命令执行漏洞漏洞练习

北京bgp机房和普通机房的区别

JUC(七):变量的线程安全分析

英诺特生物上市市值45亿:年营收降68% 红杉与元生是股东

杜教筛【莫比乌斯前缀和,欧拉函数前缀和】推导与模板【一千五百字】

Redis(十) - Redission原理与实践
随机推荐
26 basic models in 6 categories that operators must master
北京bgp机房和普通机房的区别
复星医药募资44.84亿:高毅资产认购20亿 成第三大股东
英诺特生物上市市值45亿:年营收降68% 红杉与元生是股东
Drools(7):WorkBench
matlab之函数
Sentinel 流量防卫兵
JUC(六):synchronized
SQL Server中如何在date类型中提取年、月、日数据
Hyperchain超块链创始人史兴国接受21世纪经济报道采访,解读上海NFT新规及数藏发展
华宝新能通过注册:拟募资近7亿 营收增加利润反而下降
Detailed explanation of carousel picture 2 - carousel pictures through left positioning
VMware磁盘扩容记录
Simple Operations on Sequence
朴素贝叶斯分类
Fudan-Washington University EMBA Kechuang's Ao E丨The Magical Materials and We Are Shaped
JUC (5): Problems caused by sharing
Public chains challenging the "Impossible Triangle"
JUC(四):简记线程的五/六种状态
【无标题】