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 服务容错的主要内容,如果未能解决你的问题,请参考以下文章
Spring Cloud构建微服务架构 服务容错保护(Hystrix断路器)Dalston版