SpringCloud-高级篇(三)
创始人
2024-06-02 10:22:19
0

目录:

(1)Feign与Sentinel的整合

(2)Sentinel实现线程隔离和熔断

           熔断策略-慢调用 

          熔断策略-异常比例  异常数


(1)Feign与Sentinel的整合

前面学习了限流的各种用法,限流可以降低服务的负载,从而避免服务因为过高并发而出现故障,服务不出现故障自然不会把故障传递给其他服务,从而避免了级联失败,限流是对服务故障的预防措施,但是如果服务已经出现了故障,就很容易把故障传递给依赖它的其他服务,这样很容易出现雪崩了,多以需要使用线程隔离、线程熔断避免级联失败

保护服务的调用者,应该在服务调用者在发起远程调用的时候去做隔离或者做熔断,在SpringCloud在远程调用的时候是基于Feign来实现的,所以我们要想实现隔离和降级,最好的办法是基于Feign去整合Sentinel去做隔离和降级

 通过在配置文件中添加,这样就可以我们的Sentinel可以自动的去监控Feign客户端,把它变成一个链路中的资源,这样一来就可以给它配置限流的规则,隔离的规则、降级的规则等

限流也好,服务被拒绝也好,服务器出现了故障,都是直接抛出一个异常 到前端,这种方式不够友好,给用户体验不好,比较好的处理方案是给用户一个好的提示,告诉他说这里出了什么事,或者返回默认的信息,这些就是失败降级的逻辑

用了Feign的客户端 

 编写返回逻辑:

 

我们的Feign没有在order-service模块里而是抽成了一个模块 

 

 

 加上fallbackFactory

 重启:先访问一下:

 有了Feign的请求路径

 

 (2)Sentinel实现线程隔离和熔断

 

 

扇出:我这个服务依赖于n个其他的服务,这个就叫扇出

 点击流控

 

测试: 

 

这里显示 是正常的因为我们做了逻辑处理,在控制台显示报错,返回一个空的用户 

 

多余的请求都被降级了 

 

 

熔断策略-慢调用 

 

更肥usercontroller:添加睡眠时间,触发熔断策略

 重启:

查询101,因为设置了睡眠,这条数据的响应时间在60毫秒以上了 

 

 查询102的时候,是非常快的,16毫秒,没有触发熔断

 配置降级规则,点击降级

 

就配置好了,降级规则了 

 

 狂刷5次查询101:

 

在访问102:

102本来可以查询到,但是在查询一次:出现问题,而且响应时间是非常的快,10毫秒就结束了,说明用户在查询订单的那一刻直接被熔断了,直接走降级逻辑返回null,所以响应时间没有边长反而变短了

 

 

 过了熔断时间后进入Half-Open:在重新刷新一次,成功了,进入到了Close状态

熔断策略-异常比例  异常数

 

 

修改 controller 

 

 重启:

查询102:会抛出异常:

 

配置熔断:重新配置点击降级按钮

 

 

 102连续访问5次:就会触发熔断规则

 此时访问103,就不能正常访问了:

 

 

 

相关内容

热门资讯

中证A500ETF摩根(560... 8月22日,截止午间收盘,中证A500ETF摩根(560530)涨1.19%,报1.106元,成交额...
A500ETF易方达(1593... 8月22日,截止午间收盘,A500ETF易方达(159361)涨1.28%,报1.104元,成交额1...
何小鹏斥资约2.5亿港元增持小... 每经记者|孙磊    每经编辑|裴健如 8月21日晚间,小鹏汽车发布公告称,公司联...
中证500ETF基金(1593... 8月22日,截止午间收盘,中证500ETF基金(159337)涨0.94%,报1.509元,成交额2...
中证A500ETF华安(159... 8月22日,截止午间收盘,中证A500ETF华安(159359)涨1.15%,报1.139元,成交额...
科创AIETF(588790)... 8月22日,截止午间收盘,科创AIETF(588790)涨4.83%,报0.760元,成交额6.98...
创业板50ETF嘉实(1593... 8月22日,截止午间收盘,创业板50ETF嘉实(159373)涨2.61%,报1.296元,成交额1...
港股异动丨航空股大幅走低 中国... 港股航空股大幅下跌,其中,中国国航跌近7%表现最弱,中国东方航空跌近5%,中国南方航空跌超3%,美兰...
电网设备ETF(159326)... 8月22日,截止午间收盘,电网设备ETF(159326)跌0.25%,报1.198元,成交额409....
红利ETF国企(530880)... 8月22日,截止午间收盘,红利ETF国企(530880)跌0.67%,报1.034元,成交额29.0...