zoukankan      html  css  js  c++  java
  • 第十五节--Hystrix之服务降级

    1 .先从8001自身找问题:设置自身调用超时时间的峰值,峰值内可以正常运行,超时了需要有兜底的方法处理,作服务降级fallback
        在服务端cloud-provider-hystrix-payment8001工程中设置超时,消费者去调用
       第一步:
     /**
          * 让线程睡眠5秒再执行方法,超时就去执行timeoutHandler方法返回 , @HystrixProperty设置该方法在3秒内执行
          * 目的让方法执行延迟去执行timeoutHandler方法
         */
         @HystrixCommand(fallbackMethod ="timeoutHandler",commandProperties = {
         @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds",value = "3000")
         })
          @GetMapping("/admin/findPaymentList")
         public CommonResult findPaymentList(){
         try {
         Thread.sleep(5000);
         }catch (Exception e){
    
         }
         List<Payment> paymentList = paymentService.findPaymentList();
         log.info("查询所有数据");
         if(paymentList!=null){
         return new CommonResult(200,"查找数据成功",paymentList);
         }
         return new CommonResult(400,"没有对应的记录");
        }
    //超时需要执行的方法
    public CommonResult timeoutHandler(){
    return new CommonResult(400,"服务正忙,请稍后再试");
    }
    第二步:主启动加上@EnableCircuitBreaker //激活hystrix
     
    第三步:测试,启动服务端8001,消费端cloud-consumer-feign-hystrix-order80,调用findPaymentList()方法
           消费端通过接口OpenFeign调用,查看执行返回我们所设置超时的方法
     
     
     
    异常同理
     

     
    80订单消费端,可以更好的保护自己,依样进行客户端降级保护 cloud-consumer-feign-hystrix-order80工程
    第一步:在yml文件中配置
    #启用hystrix
    feign:
      hystrix:
        enabled: true
    第二步:在主启动类上加注解@EnableHystrix
     
    第三步:controller代码
    /**
    * 1.5秒内如果返回则OK,否则执行timeoutHandler方法返回友好提示
    * @return
    */
    @HystrixCommand(fallbackMethod ="timeoutHandler",commandProperties = {
    @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds",value = "1500")
    })
    @GetMapping("/consumer/findPaymentList")
    public CommonResult findPaymentList(){
    log.info("查询所有数据");
    return orderService.findPaymentList();
    }
    //超时需要执行的方法
    public CommonResult timeoutHandler(){
    return new CommonResult(400,"消费端服务正忙,请稍后再试");
    }
    第四步:测试
  • 相关阅读:
    PTA(Basic Level)1048.数字加密
    PTA(Basic Level)1037.在霍格沃茨找零钱
    PTA(Basic Level)1030.完美数列
    PTA(Basic Level)1047.编程团体赛
    PTA(Basic Level)1087.有多少不同的值
    PTA(Basic Level)1077.互评成绩计算
    PTA(Basic Level)1027.打印沙漏
    PTA(Basic Level)1029.旧键盘
    记录一次排查挖矿:快速跟踪一个进程
    JVM性能、多线程排查常用命令
  • 原文地址:https://www.cnblogs.com/hexublog/p/13681870.html
Copyright © 2011-2022 走看看