feign集成Hystrix

  • 介绍
    • 以上案例只有一个方法,所有直接把降级方法放到了消费者了conroller中
    • 如果项目中有很多不同的服务,不同的服务又有不同的方法,以上方法就显得很冗余
    • 解决方法就是在feign内继承Hystrix
feign集成Hystrix代码实现
  1. 在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;
        }
    }
    
  2. 原接口的@FeignClient客户端注解需要加入fallback属性
    @FeignClient(value = "user-service",fallback = UserFeignFallBack.class)
    public interface UserFeign {
    
        @GetMapping("/user/{userName}")
        public User findByUserName(@PathVariable("userName") String userName);
    }
    
  3. 注释掉原消费者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;
    //    }
    }
    
  4. 把开启feign开启hystrix服务降级的配置放入消费者的yml文件中
    feign:
      hystrix:
        enabled: true # 开启Feign的熔断功能
    
  5. 在user_service加入手工模拟异常测试即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值