SpringCloud(三)服务降级、熔断

服务降级、熔断

1.服务降级

1.1 什么是服务降级

服务提供方由于网络原因,服务器原因,程序问题等等,导致服务不可用,响应缓慢,服务崩溃宕机。
这时,为了较好的用户体验,需要进行服务降级,在出现问题时,返回又好消息,如返回一个提示信息:当期网络波动,请稍后再试。
从而避免程序报错返回500,影响体验。

1.2 怎么解决

1.yml增加配置

feign:
  hystrix:
    enabled: true
2. 启动类增加注解
@EnableHystrix

3. 编写服务降级接口,实现类

在这里插入图片描述
在这里插入图片描述
实现效果
在这里插入图片描述

fallbackMethod方法(服务兜底)实现降级:
在这里插入图片描述
在这里插入图片描述

服务熔断
  1. 什么是服务熔断
熔断机制是应对雪崩效应的一种微服务链路保护机制,当扇出链路的某个微服务出差不可用,或者响应时间太长时,会进行服务降级,进而熔断改节点微服务的调用,快速返回错误的响应信息。
当检测到该节点微服务调用响应正常后,恢复调用链路。
服务降级-->服务熔断-->恢复调用链路
  1. 实操服务熔断
@HystrixCommand(fallbackMethod = "paymentCircuitBreaker_fallback",commandProperties = {
            @HystrixProperty(name = "circuitBreaker.enabled",value = "true"),// 是否开启断路器
            @HystrixProperty(name = "circuitBreaker.requestVolumeThreshold",value = "10"),// 请求次数
            @HystrixProperty(name = "circuitBreaker.sleepWindowInMilliseconds",value = "10000"), // 时间窗口期
            @HystrixProperty(name = "circuitBreaker.errorThresholdPercentage",value = "60"),// 失败率达到多少后跳闸
    })

在这里插入图片描述
3. 实现效果

当传入id为正数,接口正常
在这里插入图片描述
当传入id为负数,抛出异常,进入降级方法
在这里插入图片描述
多次使用负数请求接口后,接口失败次数超过设置的60%,触发熔断,此时再用正数请求接口。
如下图,可以看出,熔断已开启,入参为正数也返回该错误信息。
在这里插入图片描述
再次使用正数调用接口,发现接口慢慢恢复正常。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

木子丶Li

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

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

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

打赏作者

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

抵扣说明:

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

余额充值