美文网首页
Hystrix全局降级方法

Hystrix全局降级方法

作者: CodeYang | 来源:发表于2021-08-30 10:34 被阅读0次

    三、每个方法都需要配置一个降级方法,导致代码膨胀。我们拿服务消费者为例,进行统一配置。

    1. 修改 Controller 代码,定义全局异常处理方法

    @DefaultProperties(defaultFallback = "consumerGlobalHandler") //没有配置异常方法的调用这个,配置的调用自己的
    consumerTimeOut 异常处理会调用 consumerException
    consumerException 异常处理会调用 consumerGlobalHandler

    @RestController
    @DefaultProperties(defaultFallback = "consumerGlobalHandler") //没有配置异常方法的调用这个,配置的调用自己的
    public class CHystrixController {
    
        @Resource
        private OpenFeginService service;
    
        @GetMapping(value = "/consumer/hystrix/ok/{name}")
        public String consumerOk(@PathVariable("name")String name){
            return service.providerOK(name)+" And Consumer[OK]";
        }
    
        @GetMapping(value = "/consumer/hystrix/timeout/{name}")
        @HystrixCommand(fallbackMethod = "consumerTimeOutHandler",commandProperties = {
                //规定三秒以内的逻辑为正常逻辑
                @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds",value = "1500")
        })
        public String consumerTimeOut(@PathVariable("name")String name){
            return service.providerTimeOut(name)+" And Consumer[TimeOut]";
        }
    
        /**
         * fallback 方法  当方法出现异常时调用该方法
         * @param name
         * @return
         */
        public String consumerTimeOutHandler(@PathVariable("name") String name){
            return name+" Print From consumerTimeOutHandler  系统繁忙,请稍后再试!";
        }
    
    
        @GetMapping(value = "/consumer/hystrix/exception/{name}")
        @HystrixCommand //没有特别指明用哪个方法,就用统一的
        public String consumerException(@PathVariable("name")String name){
            int a=10/0;
            return service.providerTimeOut(name)+" And Consumer[TimeOut]";
        }
    
    
        /**
         * fallback 方法  当方法出现异常时调用该方法
         * @return
         */
        public String consumerGlobalHandler(){
            return " GlobalHandler异常信息处理  系统繁忙,请稍后再试!";
        }
    }
    
    
    1. 测试


      consumerTimeOut异常处理.png
    consumerException异常处理.png

    相关文章

      网友评论

          本文标题:Hystrix全局降级方法

          本文链接:https://www.haomeiwen.com/subject/hgpliltx.html