zoukankan      html  css  js  c++  java
  • Hystrix 服务容错

    第一步:

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-config-client</artifactId>
            </dependency>
    

     第二步:

    @EnableCircuitBreaker 
    

     第三步:

    package com.example.order.controller;
    
    import com.netflix.hystrix.contrib.javanica.annotation.DefaultProperties;
    import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.client.RestTemplate;
    
    /**
     * @Title: HystrixController
     * @ProjectName order
     * @date 2019/12/1911:34
     */
    @RestController
    @DefaultProperties(defaultFallback = "defaultFallback") // 默认调用的方法名
    public class HystrixController {
        // 超时配置
        @HystrixCommand//(commandProperties = {@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "3000")})
        @GetMapping("/getProductInfoList")
        public String getProductInfoList() {
            RestTemplate restTemplate = new RestTemplate();
            return restTemplate.postForObject("http://127.0.0.1:8080/product/list",
                    null,
                    String.class);
    //		throw new RuntimeException("发送异常了");
        }
    
        /**
         * 默认方法名, 如果8080服务不通,会调用
         * @return
         */
        private String defaultFallback() {
            return "默认提示:太拥挤了, 请稍后再试~~";
        }
    }
    

      

    yml 配置方式(方法不需要单独配置)

    hystrix:
      command:
        # 配置超时时间
        default:
          execution:
            isolation:
              thread:
                timeoutInMilliseconds: 1000
        getProductInfoList: # 给方法名称单独添加超时时间
          execution:
            isolation:
              thread:
                timeoutInMilliseconds: 3000
    

      

    feign 中直接使用 hystrix 添加配置

    feign:
      hystrix:
        enabled: true
    

     在@FeignClient(name="xxx", fallback=类名.class)  该类需要实现当前接口client类的所有方法

  • 相关阅读:
    100多个淘宝抢的双11红包怎么用?最多才能累积使用15个
    灵动标签调用友情链接
    台湾短片:《血战古.宁.头》
    discuz_style_default.xml 修改
    discuz门户文章页面模板修改
    ps快捷键
    拍摄好的图片,如何抠图去背景纯白..
    Centos6.5安装rabbmitmq蛋碎
    好用的YUM源
    python_函数的参数
  • 原文地址:https://www.cnblogs.com/412013cl/p/12066944.html
Copyright © 2011-2022 走看看