SpringCloud——Hystrix 从入门到辗转反侧
创始人
2024-05-29 16:39:22

SpringCloud-Hystrix

服务故障的“雪崩”效应

微服务的“扇出”

  • 多个微服务之间的关联调用称为服务"扇出"。例如微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务。

  • 由于网络原因或者自身的原因,服务并不能保证 100% 可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet 容器的线程资源会被消耗完毕,导致服务瘫痪。

  • 如果单实例部署微服务,由于服务与服务之间的依赖性,导致故障传播,会对整个微服务系统造成灾难性的严重后果。所以,为了保证其高可用,单个服务通常会集群部署。

如何防止服务“雪崩”

  • 基本思路:需要对故障和延迟进行隔离和管理,以便单个依赖关系的失败,不能影响整个应用程序或系统。
  • 断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费 CPU 周期,而它确定该故障是持久的。
  • 断路器模式也使应用程序能够检测故障是否已经解决。如果问题似乎已经得到纠正,应用程序可以尝试调用操作。

认识 Hystrix

概念

  • 从角色上,Hystrix 扮演的是断路器功能。当有服务出现故障时,可以通过短路器监控,返回一个可以处理的响应结果,保证服务调用线程不会长时间被占用,避免故障蔓延。
  • 从技术上,Hystrix是一个开源库,主要处理微服务系统延迟和容错。一个服务出现故障时,不会导致整个系统出现雪崩效应,以提高分布式系统弹性;

作用

服务降级

请添加图片描述

服务熔断

在这里插入图片描述

使用

服务熔断配置

参数设置:

①circuitBreaker.enabled:是否开启熔断;
②circuitBreaker.requestVolumeThreshold:当前服务失败几次后开启断路,默认20次;
③circuitBreaker.sleepWindowInMilliseconds:设置断路时间,过了该时间后会尝试恢复,在断路时间内,即使请求正确也会走降级方法;

熔断类型:

  • 熔断打开
    熔断打开后,在此时间内不会对该服务进行调用,而是直接访问降级方法。通过设置熔断时间,当达到该时间后,会尝试恢复该服务。

  • 熔断关闭
    熔断关闭代表服务正常,不会干扰正常服务调用。

  • 熔断半开
    熔断半开时,请求可以访问服务,若请求正常访问,则熔断会关闭;若请请求不正常,继续熔断,调用降级方法。

参考

  • https://worktile.com/kb/ask/22743.html
  • https://blog.csdn.net/weixin_50616848/article/details/124542186

上一篇:THUPC-2023 游记

下一篇:工作日志day03

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...