Hystrix之服务降级、服务熔断、服务限流

如果想知道Hystrix是如何运行的可以参考github官网源码讲解:https://github.com/Netflix/Hystrix/wiki/How-it-Works

我们可以在本地构建一个微服务提供者,提供8001两个接口,一个直接返回,一个sleep(3)秒后返回,正常访问一个是马上响应,一个是等待3秒响应。上述在非高并发情形下,还能勉强满足,但是在高并发情况下就会量变引起质变。当我们通过Jmeter软件进行压力测试模拟  200次/秒*100次循环的20000次并发访问第二个sleep(3)秒的接口,会直接影响第一个直接返回的接口的响应速度。

导致原因:8001同一层次的其他接口服务被困死,因为tomcat线程里面的工作线程已经被挤占完毕,而此时客户端调用8001,客户端访问响应缓慢,转圈圈,得不到响应;

正因为有上述故障或不佳表现,才有我们的降级/容错/限流等技术诞生。

如何解决及解决的要求:

1、超时导致服务器变慢(转圈):超时不再等待

2、出错(宕机或程序运行出错):要有一个最终处理兜底程序

解决:

  • 对方服务(8001)超时了,调用者(80)不能一直卡死等待,必须有服务降级
  • 对方服务(8001)down机了,调用者(80)不能一直卡死等待,必须有服务降级
  • 对方服务(8001)OK,调用者(80)自己出故障或有自我要求(自己的等待时间小于服务提供者),自己处理降

服务降级---https://blog.csdn.net/TOP__ONE/article/details/105574438

       服务器忙,请稍候再试,不让客户端等待并立刻返回一个友好提示,fallback

       哪些情况会触发降级:程序运行异常,超时,服务熔断触发服务降级,线程池/信号量打满也会导致服务降级

服务熔断--https://blog.csdn.net/TOP__ONE/article/details/105579609

    类比保险丝达到最大服务访问后,直接拒绝访问,拉闸限电,然后调用服务降级的方法并返回友好提示。

     实现:服务的降级->进而熔断->恢复调用链路

服务限流--因为Hystrix停止维护了,所以后期补上阿里的sentinel讲解配置

   秒杀高并发等操作,严禁一窝蜂的过来拥挤,大家排队,一秒钟N个,有序进行

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Cloud中,熔断降级和限流是通过使用Hystrix来实现的。熔断机制中涉及了三种熔断状态:熔断关闭状态、熔断开启状态和半熔断状态。当服务访问正常时,熔断器处于关闭状态,服务调用方可以正常地进行服务调用。当接口调用出错比率达到一个阈值时,熔断器会进入熔断开启状态,后续对该服务的调用都会被切断,熔断器会执行本地的降级方法。在熔断开启一段时间之后,熔断器会进入半熔断状态,尝试恢复服务调用方对服务的调用,允许部分请求调用该服务,并监控其调用成功率。如果成功率达到预期,则说明服务已恢复正常,熔断器进入关闭状态;如果成功率仍旧很低,则重新进入熔断开启状态。\[1\] 在Spring Cloud中,可以通过使用Hystrix来实现服务降级、熔断和限流服务降级是指在服务不可用或响应时间过长时,提供一个备用的响应或返回缺省值,以保证系统的可用性。熔断是指在服务出现故障或异常时,断开对该服务的调用,避免对整个系统的影响。限流是指对服务的访问进行限制,防止系统被过多的请求压垮。\[2\] 在Spring Cloud中,可以通过在主启动类上添加@EnableCircuitBreaker注解来激活熔断器功能。同时,可以使用@HystrixCommand注解来标记需要进行熔断降级的方法。在方法中,可以通过定义fallback方法来实现服务降级的逻辑。\[3\] #### 引用[.reference_title] - *1* *2* *3* [SpringCloud学习——Histrix服务限流、降级、熔断](https://blog.csdn.net/KIMTOU/article/details/125359690)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值