5-2 SpringCloud快速开发入门:Hystrix 的服务降级与异常处理

接上一章节Hystrix快速入门,这里讲讲Hystrix 的服务降级与异常处理

Hystrix 的服务降级

有了服务的熔断,随之就会有服务的降级,所谓服务降级,就是当某个服务熔断之后,服务端提供的服务将不再被调用,此时由客户端自己准备一个本地的fallback 回调,返回一个默认值来代表服务端的返回;这种做法,虽然不能得到正确的返回结果,但至少保证了服务的可用,比直接抛出错误或服务不可用要好很多,当然这需要根据具体的业务场景来选择;

在这里插入图片描述

Hystrix 的异常处理

我们在调用服务提供者时,我们自己也有可能会抛异常,默认情况下方法抛了异常会自动进行服务降级,交给服务降级中的方法去处理; 当我们自己发生异常后,只需要在服务降级方法中添加一个 Throwable 类型的参数就能够获取到抛出的异常的类型及信息,如下:

/**
     * 熔断的回调方法,也就是降级方法
     * @return
     */
    public String error(Throwable throwable) {
        System.out.println("异常 : " + throwable.getMessage());
        return "error";
    }
  • 在服务消费者调用方法里加入异常代码,请求服务提供者后可以看到获取的异常信息,服务提供者发生异常同理,唯一不同的是服务提供者是http请求,返回的异常就是接口异常了
    在这里插入图片描述

Hystrix 的异常处理取消

如果远程服务有一个异常抛出后我们不希望进入到服务降级方法中去处理,而是直接将异常抛给用户,那么我们可以在@HystrixCommand 注解中添加忽略异常,如下:

  • 注:服务超时还是会进入熔断降级方法中处理

  • 添加忽略异常注解,将异常抛给用户

@HystrixCommand(fallbackMethod = "error", ignoreExceptions = Exception.class,commandProperties = {
            @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds",value = "2500")}) //熔断器,调用不通,回调 error()方法    

在这里插入图片描述

  • 启动测试,可以看到客户端发生异常了

在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值