SpringBoot2 整合 SpringCloud 的 Hystrix断路器 实例 - Go语言中文社区

SpringBoot2 整合 SpringCloud 的 Hystrix断路器 实例


1. 概述

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

2. 短路器

一个请求需要调用多个服务。
在这里插入图片描述
如果一个服务出现故障,如服务A故障,短路会被打开,然后走 FallBack 之后的方法。
在这里插入图片描述

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,如下图所示:

在这里插入图片描述
关闭 Hi-Service 服务:
在这里插入图片描述
访问 http://localhost:8765/hello,如下图所示:
在这里插入图片描述

参考文献

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_38737992/article/details/102613434
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 22:45:57
  • 阅读 ( 1266 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢