SpringBoot2 整合 SpringCloud 的 Hystrix断路器 实例

文章目录

    • 1. 概述
    • 2. 短路器
    • 3. SpringFeign 使用 Hystrix断路器
      • 3.1 工程实例
      • 3.2 修改 Fegin 模块
      • 3.3 测试运行
    • 参考文献

1. 概述

微服务架构中服务之间互相调用,单个服务通常会集群部署,由于网络等原因,服务不能保证 100% 可用,如果单个服务出现问题会出现请求的堆积,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。

2. 短路器

一个请求需要调用多个服务。
SpringBoot2 整合 SpringCloud 的 Hystrix断路器 实例_第1张图片
如果一个服务出现故障,如服务A故障,短路会被打开,然后走 FallBack 之后的方法。
SpringBoot2 整合 SpringCloud 的 Hystrix断路器 实例_第2张图片

3. SpringFeign 使用 Hystrix断路器

Feign是自带断路器,只需要配置一下。添加链接描述

3.1 工程实例

整个工程可以参考我的这篇博文:https://blog.csdn.net/qq_38737992/article/details/102525408。

3.2 修改 Fegin 模块

添加下面的 配置:

feign.hystrix.enabled=true

添加 fallback 的方法,fallback = HelloWorldHystrix.class:

/**
 * @author syrdbt
 * @date 2019-10-12
 */
@FeignClient(name = "service-hi", fallback = HelloWorldHystrix.class)
public interface HelloFeign {

    @RequestMapping(value="/hello")
    String hello();
}

HelloWorldHystrix.java如下所示:

/**
 * @author syrdbt
 * @date 2019-10-17
 */
@Component
public class HelloWorldHystrix implements HelloFeign {
    @Override
    public String hello() {
        return "sorry";
    }
}

3.3 测试运行

启动注册中心和服务,访问注册中心 ,注册的实例如下图所示:
在这里插入图片描述
访问 http://localhost:8765/hello,如下图所示:

SpringBoot2 整合 SpringCloud 的 Hystrix断路器 实例_第3张图片
关闭 Hi-Service 服务:
在这里插入图片描述
访问 http://localhost:8765/hello,如下图所示:
SpringBoot2 整合 SpringCloud 的 Hystrix断路器 实例_第4张图片

参考文献

  • https://www.fangzhipeng.com/springcloud/2018/08/04/sc-f4-hystrix.html

你可能感兴趣的:(#,----SpringCloud)