feign集成Hystrix
程序员文章站
2022-04-15 18:36:39
介绍以上案例只有一个方法,所有直接把降级方法放到了消费者了conroller中如果项目中有很多不同的服务,不同的服务又有不同的方法,以上方法就显得很冗余解决方法就是在feign内继承Hystrixfeign集成Hystrix代码实现在api_service服务接口内新建一个fallback文件夹存放指定接口方法的降级方法@Component//需要继承接口public class UserFeignFallBack implements UserFeign { @Overr....
- 介绍
- 以上案例只有一个方法,所有直接把降级方法放到了消费者了conroller中
- 如果项目中有很多不同的服务,不同的服务又有不同的方法,以上方法就显得很冗余
- 解决方法就是在feign内继承Hystrix
feign集成Hystrix代码实现
- 在api_service服务接口内新建一个fallback文件夹存放指定接口方法的降级方法
@Component//需要继承接口 public class UserFeignFallBack implements UserFeign { @Override public User findByUserName(String userName) { User user = new User(); user.setName("-1"); user.setNickName("暂停服务-feignFallBack"); return user; } }
- 原接口的@FeignClient客户端注解需要加入fallback属性
@FeignClient(value = "user-service",fallback = UserFeignFallBack.class) public interface UserFeign { @GetMapping("/user/{userName}") public User findByUserName(@PathVariable("userName") String userName); }
- 注释掉原消费者controller中的降级方法和注解
@RestController @RequestMapping(value = "feign") public class FeignController { @Autowired private UserFeign userFeign; @GetMapping("{userName}") // @HystrixCommand(fallbackMethod = "findByUserNameFallBack") public User findByUserName(@PathVariable("userName") String userName){ return userFeign.findByUserName(userName); } //降级方法 // public User findByUserNameFallBack(String userName){ // User user = new User(); // user.setName("-1"); // user.setNickName("暂停服务"); // return user; // } }
- 把开启feign开启hystrix服务降级的配置放入消费者的yml文件中
feign: hystrix: enabled: true # 开启Feign的熔断功能
- 在user_service加入手工模拟异常测试即可
本文地址:https://blog.csdn.net/weixin_43948783/article/details/110289433
推荐阅读
-
微软对所有Outlook.com用户推送Skype集成改进
-
详解SpringBoot集成jsp(附源码)+遇到的坑
-
Django集成OpenLDAP认证的实现
-
iNeuOS 物联网云操作系统2.0发布,集成设备容器、视图建模、机器学习三大模块
-
Asp.Net Core 轻松学-利用xUnit进行主机级别的网络集成测试
-
SpringCloud系列-整合Hystrix的两种方式
-
Django集成CAS单点登录的方法示例
-
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
-
SpringBoot集成阿里巴巴Druid监控的示例代码
-
Gitlab Runner实现NetCore自动化持续集成