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

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

一般情况下,我们会对客户端控制层(controller)进行降级

调用接口异常返回:
服务器异常,请稍后再试

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

启动类:(服务消费者)

@SpringBootApplication
@EnableFeignClients
@EnableCircuitBreaker
@ComponentScan("com.zsp")
public class UserConsumerMain80 {
    public static void main(String[] args) {
        SpringApplication.run(UserConsumerMain80.class, args);
    }
}

service接口(openfegin)

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

controller(服务消费者)

@RestController
@DefaultProperties(defaultFallback = "globalFallbackMethod")
public class ZspController {
    @Resource
    private UserService userService;
    @GetMapping("/zsp/{id}")
    @HystrixCommand
    public String selectId(@PathVariable("id") Long id) {
        return userService.selectId(id);
    }
    
    public String globalFallbackMethod() {
        return "服务器异常,请稍后再试";
    }
}

总结:

  • 启动类@EnableCircuitBreaker

  • 控制器层使用@DefaultProperties(defaultFallback =
    “globalFallbackMethod”)注解来指定全局的fallback方法

  • 添加globalFallbackMethod(全局处理返回方法)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值