Hystrix 服务容错

Posted 412013cl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

  

以上是关于Hystrix 服务容错的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud+Hystrix服务容错

Spring Cloud构建微服务架构 服务容错保护(Hystrix断路器)Dalston版

微服务系列之Hystrix服务容错

服务容错保护断路器Hystrix之五:配置

SpringCloud——Hystrix服务容错(熔断与降级)

SpringCloud——Hystrix服务容错(熔断与降级)