zoukankan      html  css  js  c++  java
  • Spring整合Hystrix

    1、添加maven依赖

    <dependency>
        <groupId>com.netflix.hystrix</groupId>
        <artifactId>hystrix-core</artifactId>
        <version>1.5.18</version>
    </dependency>
    <dependency>
        <groupId>com.netflix.hystrix</groupId>
        <artifactId>hystrix-javanica</artifactId>
        <version>1.5.18</version>
    </dependency>

    2、配置切面

    <aop:aspectj-autoproxy proxy-target-class="true" />
    <bean class="com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect" />

    3、编写controller类,并添加注解

    @Controller
    @RequestMapping
    public class CommonController {
        /**
         * 主页
         * 
         * @return
         */
        @RequestMapping("/")
        public String home() {
            return "home.html";
        }
    
        /**
         * 配置2秒超时,超时后调用testFallback方法返回到error界面<br>
         * 当并发量比较大时,并非所有阻断或失败的请求都会走fallback方法,当处理线程忙不过来时,会直接抛出HystrixRuntimeException异常
         * 
         * @param mav
         * @param time 睡眠时间
         * @return
         */
        @HystrixCommand(groupKey = "groupTest", commandKey = "commandTest", fallbackMethod = "testFallback", commandProperties = {
                @HystrixProperty(name = "execution.timeout.enabled", value = "true"),
                @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "2000") })
        @RequestMapping("/test")
        public ModelAndView test(ModelAndView mav, @RequestParam(defaultValue = "1") int time) {
            try {
                Thread.sleep(1000 * time);
            } catch (Exception e) {
            }
            mav.setViewName("success.html");
            return mav;
        }
    
        /**
         * test访问熔断后回调页面
         * 
         * @param mav
         * @param time
         * @return
         */
        protected ModelAndView testFallback(ModelAndView mav, @RequestParam(defaultValue = "1") int time) {
            mav.setViewName("fallback.html");
            return mav;
        }
    }

    4、在webapp目录下添加fallback.html、success.html文件

    5、访问http://127.0.0.1:8080/spring-hystrix-demo/test?time=0,浏览器正常进入success.html页面;

          访问http://127.0.0.1:8080/spring-hystrix-demo/test?time=5,连接超时,后台执行testFallback方法,浏览器进入fallback.html页面。

  • 相关阅读:
    PAT (Advanced Level) 1086. Tree Traversals Again (25)
    PAT (Advanced Level) 1085. Perfect Sequence (25)
    PAT (Advanced Level) 1084. Broken Keyboard (20)
    PAT (Advanced Level) 1083. List Grades (25)
    PAT (Advanced Level) 1082. Read Number in Chinese (25)
    HDU 4513 吉哥系列故事――完美队形II
    POJ Oulipo KMP 模板题
    POJ 3376 Finding Palindromes
    扩展KMP
    HDU 2289 Cup
  • 原文地址:https://www.cnblogs.com/zhi-leaf/p/10513999.html
Copyright © 2011-2022 走看看