- spring cloud alibaba 实战篇(五)——sen
- spring cloud alibaba 实战篇(三)——sen
- spring cloud alibaba 实战篇(四)——sen
- Spring Cloud Alibaba Sidecar 多语言
- 这个注解一次搞定限流与熔断降级:@SentinelResourc
- Spring Cloud Alibaba:Sentinel实现熔
- 拥抱趋势!阿里这套微服务开源框架权威手册,实战到底层细致清晰
- spring cloud alibaba 简介
- Spring Cloud Alibaba 微服务原理与实战
- 5、Spring Cloud Alibaba微服务系列-分布式锁
实战三,其实我们已经写到了服务降级,但是那是针对feign延迟做的一个服务降级,其实请求还打向了我们的payment-service。
但是在实际开发中,我们不光在服务提供者(payment-service)做限流处理,也要考虑我们的消费方(account-service)做主动的熔断
降级处理。避免服务请求一直等待,让服务提供者存在大量的排队和服务压力,消费方的体验也非常不好。如果该服务还为其他消费者提供服务,那么就容易产生服务雪崩效应了。
接来下,我们针对account-service做服务改造,让这个服务在调用payment-service超时一定次数时,就直接主动熔断降级。
引入sentinel相关jar包,引入的忽略

修改account-service的bootstrap.yml
配置和payment-service类似,但是要注意下红框,rule-tuype是degrade

这里有一个问题:配置了eager:true,你会发现2个服务在sentinel控制台都不出来了。这个是懒加载的意思,大家可以重启下sentinel控制台,
再访问下服务,可以在控制台看到payment-service和account-service都刷出来了,如果还是不能出来,添加jar包

正常情况是这样:

nacos新增配置
需要注意下Data ID 要和bootstrap.yml配置文件中dataId一致

配置文件解析:
当资源的平均响应时间超过阈值500毫秒之后,资源进入准降级状态。如果接下来1秒内持续进入5个请求的RT都持续超过这个阈值,那么在接下的时间窗口(timeWindow)之内,对这个方法的调用都会自动地熔断。
接下来修改Nacos中配置项payment-service-dev.properties的sleep值,修改为1000,让/pay/balance接口响应前先挂起1秒钟来模拟服务器卡顿情况。

用浏览器打开http://localhost:8081/acc/user?id=2并连续刷新6次以上。可以观察到,从第7次开始接口不再等待1秒后返回,而是快速返回降级,并在接下来的10秒内(timeWindow:10),都处于主动熔断。

到这里就结束了,大家有疑问,可以给我留言。
最近在出差,等后面有时间,我会把gateway网关限流,nginx限流整套完善起来。
网友评论