首页 > 其他 > 详细

Hystrix 服务容错

时间:2019-12-19 12:11:09      阅读:75      评论:0      收藏:0      [点我收藏+]

第一步:

        <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 服务容错

原文:https://www.cnblogs.com/412013cl/p/12066944.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!