04、SpringCloud 系列:Hystrix - 断路器

SpringCloud 系列列表:

文章名文章地址
01、Eureka - 集群、服务发现https://blog.csdn.net/qq_46023503/article/details/128319023
02、Ribbon - 负载均衡https://blog.csdn.net/qq_46023503/article/details/128332288
03、OpenFeign - 远程调用https://blog.csdn.net/qq_46023503/article/details/128387961
04、Hystrix - 断路器https://blog.csdn.net/qq_46023503/article/details/128408601
05、Sleuth - 链路追踪https://blog.csdn.net/qq_46023503/article/details/128409339
06、Gateway - 网关https://blog.csdn.net/qq_46023503/article/details/128430842
07、Alibaba - 介绍https://blog.csdn.net/qq_46023503/article/details/128434080
08、Nacos - 安装、启动https://blog.csdn.net/qq_46023503/article/details/128460411
09、Nacos - 配置文件中心https://blog.csdn.net/qq_46023503/article/details/128460649
10、Nacos - 注册中心https://blog.csdn.net/qq_46023503/article/details/128460494

1 服务雪崩

1.1 什么是服务雪崩

在这里插入图片描述
在这里插入图片描述
服务雪崩的本质:线程没有及时回收。 不管是调用成功还是失败,只要线程可以及时回收,就可以解决服务雪崩

1.2 解决服务雪崩

  • 修改调用的超时时长(不推荐) 将服务间的调用超时时长改小,这样就可以让线程及时回收,保证服务可用 优点:非常简单,也可以有效的解决服务雪崩。缺点:不够灵活,有的服务需要更长的时间去处理(写库,整理数据)
  • 设置拦截器
  • 在这里插入图片描述

2 在 OpenFeign 中使用 Hystrix(重点)

2.1 创建服务

  • 创建 eureka 服务,并启动
  • 创建 provider-order-service,将其注册到 eureka 服务中
  • 创建 consumer-user-service,并使用 openfeign 远程调用 order 服务,最后将其注册到 eureka 服务中
  • 创建与 OpenFeign 中入门案例一样

2.2 进行修改

在 consumer-user-service 下创建一个 Hystrix 类,实现 OpenFeign 的接口

@Component
public class MyHystrix implements Openfeign {
    @Override
    public String doOrder() {//当远程调用失败后,会调用此方法
        return "调用失败,这个是 hystrix 中的方法";
    }
}

为 OpenFeign 接口注解添加 fallback 属性,值为实现类的类型

@FeignClient(value = "orderservice",fallback = MyHystrix.class)
public interface Openfeign {
    @GetMapping("doOrder")
    public String doOrder();
}

在 yml 文件中添加

feign:
  hystrix:
    enabled: true #开启断路器的使用

2.3 访问测试

关掉 provider-order-service 服务,发现访问到时 MyHystrix 类的实现方法

3 断路器的状态说明以及状态转变

3.1 关状态

服务正常调用 A—》B

3.2 开状态

在一段时间内,调用失败次数达到阀值(5s 内失败 3 次)(5s 失败 30 次的)则断路器打开,直接 return

3.3 半开状态

断路器打开后,过一段时间,让少许流量尝试调用 B 服务,如果成功则断路器关闭, 使服务正常调用,如果失败,则继续半开

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄天灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值