hystrix全局降级(逻辑层面,解决方法膨胀)

controller层调用的service接口,用了@FeignClient注解,FeignClient是服务调用,把客户端与服务器端注入eureka,来调用我们的服务器端的接口,fallback的是继承HystrixService 类为其设计的fallback处理逻辑,避免代码耦合

调用接口异常返回:
逻辑方法返回单独处理
yml(消费者):

server:
  port: 80
eureka:
  client:
    register-with-eureka: false #表示是否将自己注册进Eurekaserver默认为true。
    fetch-registry: true #是否M从Eurekaserver抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    service-url:
      defaultZone: http://localhost:7001/eureka
feign:
  hystrix:
    enabled: true

service接口(openfegin):

@FeignClient(value = "CLOUD-PROVEIDER-USER", fallbackFactory = UserServiceFallbackFactory.class)
@Component
public interface UserService {
    @GetMapping("/selectId/{id}")
    String selectId(@PathVariable("id") Long id);
}

service实现类(openfegin):

@Component
public class UserServiceFallbackFactory implements FallbackFactory<UserService> {
    @Override
    public UserService create(Throwable throwable) {
        return (id) -> "hystrx 断路成功";
    }
}

总结:

  • @FeignClient(value = “CLOUD-PROVEIDER-USER”, fallbackFactory = UserServiceFallbackFactory.class)
  • @Component**

综合总结:

  1. 控制类HystirxController上DefaultProperties注解默认fallback
  2. 控制层执行方法SingleHystirxController上HystrixCommand注解单独设置的fallback
  3. 调用service方法@FeignClient(fallback = FallbackService .class)

fallback优先显示:
运行时异常 < 超时 < 宕机

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值