feign集成Hystrix
程序员文章站
2022-07-10 17:31:23
介绍以上案例只有一个方法,所有直接把降级方法放到了消费者了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
上一篇: java JUC基础学习
推荐阅读
-
A77架构/G77 GPU 联发科首款集成5G基带 SOC现身:明年商用
-
详解Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失
-
springboot集成rabbitmq(转载)
-
spring集成mybatis原理(spring和mybatis整合步骤)
-
springboot2.0和springcloud Finchley版项目搭建(包含eureka,gateWay,Freign,Hystrix)
-
PHP集成环境XAMPP的安装与配置
-
thinkphp集成前端脚手架Vue-cli的教程图解
-
Spring Boot集成Kafka的示例代码
-
Android插件化-RePlugin项目集成与使用详解
-
支付宝接口开发集成支付环境小结