Spring Cloud Hystrix原理详细介绍
创始人
2024-05-28 15:08:22
0

Spring Cloud中的Hystrix是Netflix开源的一款针对分布式系统延迟和容错的库,其目的是通过添加延迟容忍和容错逻辑,从而控制分布式服务之间的交互。

对于一个复杂的分布式系统,包含的应用可能多达数十个,这些应用有许多依赖项目,每个依赖项目在某个时刻不可避免会失败导致故障,如果不对这些故障进行隔离,整个分布式系统都可能会崩溃。

借助官网的一个例子来说明,假设某个应用程序依赖30多个服务,每个服务正常运行的概率是99.99%,那么系统可用的概率是99.9930=99.7%,也就是说,每个服务出现故障的概率是0.3%,十亿个请求的故障就是3000000个,即使所有依赖具有出色的正常运行时间,每个月至少会有2小时以上的服务是不可用的,现实情况中,情况可能会更糟糕。

当一切正常时,请求情况如下图所示。

在这里插入图片描述
当其中有一个系统有延迟时,它可能阻塞整个用户请求,具体如下图所示。
在这里插入图片描述
在高流量情况下,一个后端的依赖延迟可能会导致所有服务的资源在数秒内变的饱和,这也就意味着,后续如果再有请求将无法提供服务,应用会出现故障。比故障更糟糕的是,这些应用程序还可能导致服务之间的延迟增加,从而备份队列、线程和其他资源,从而导致整个系统出现更多级联故障,如下图所示。
在这里插入图片描述
Hystrix的出现就是为了解决上述问题的,它封装了每个依赖项,每个依赖项彼此隔离,当延迟发生时,它会被限制在资源中,并包含回退逻辑,该逻辑决定在依赖发生任何类型故障时应作出何种响应。

使用Hystrix包装依赖项后,前面图中的架构会发生变化,如下图所示。
在这里插入图片描述
在上图中,Hystrix被设计的目标是阻止级联故障,对通过第三方客户端访问的依赖项的延迟和故障进行保护和控制。Hystrix实现这一目标的大致思路具体如下:

(1) 将外部依赖的访问请求封装在独立的线程中,进行资源隔离。

(2) 对于超出设定阈值的服务调用,直接进行超时,不允许其耗费过长时间阻塞线程。

(3) 每个依赖服务维护一个独立的线程池,一旦线程池满了,直接拒绝服务的调用。

(4) 统计依赖服务调用的成功次数、失败次数、拒绝次数、超时次数等结果。

(5) 在一段时间内,如果服务调用的异常次数超过一定阈值,就会触发熔断停止对特定服务的所有请求,在一定时间内对服务调用直接降级,一段时间后再次进行自动尝试恢复。

(6) 如果某个服务出现调用失败、被拒绝、超时等异常情况,自动调用fallback降级机制。

(7) 实时监控指标和配置变化。

关于Hystrix工作机制的深入分析将在后面小节详解,这里大家对Hystrix熔断机制有个大致了解即可。

Java最新课程:

Java零基础视频教程(2022最新Java入门,含斯坦福大学练习题+力扣算法题

Java基础入门:

java零基础自学首Java入门教程(含Java项目和Java真题)

Javaweb核心基础

JavaWeb基础教程,Java web从入门到企业实战完整版

Spring Cloud最全微服务架构

史上最全面的springcloud微服务技术栈

SSM框架教程:

SSM框架教程_Spring+SpringMVC+Maven高级+Spring

相关内容

热门资讯

阅读,伴我一路成长高一作文(... 阅读,伴我一路成长高一作文 篇一阅读是我的伴侣,伴我一路成长。从小学到初中,我一直喜欢看各种各样的书...
精神应与物质并存高二议论文(... 精神应与物质并存高二议论文 篇一在当今社会,人们常常陷入对精神和物质的对立中。有人认为精神追求比物质...
我当小警察高二作文(优质3篇... 我当小警察高二作文 篇一我当小警察近日,我有幸参加了学校组织的“我当小警察”活动。这是一次非常有意义...
那一刻,我们的距离是0高一作... 那一刻,我们的距离是0高一作文 篇一那一刻,我们的距离是0我记得那是一个阳光明媚的下午,我和同学们聚...
夜凉如水花满枝桠高二作文【精... 夜凉如水花满枝桠高二作文 篇一夜凉如水花满枝桠夏夜的微风拂过,带着一丝丝清凉,仿佛水滴在心头涟漪开来...
笨女孩也是天使高二作文【优秀... 笨女孩也是天使高二作文 篇一我曾经是一个笨女孩,总是在学习上犯错误,常常被同学笑话。但我相信,即使是...
绵山游记高一作文【实用3篇】 绵山游记高一作文 篇一绵山游记绵山,位于四川省南充市嘉陵区,是一座著名的山岳旅游胜地。我有幸在暑假期...
优秀的男孩们高二作文【精彩3... 优秀的男孩们高二作文 篇一优秀的男孩们男孩们,你们是社会的未来,是家庭的希望,是校园的风景。作为高二...
高三责任与担当作文800字【... 高三责任与担当作文800字 篇一高三,是每个学生都期待的一年,也是每个学生都感到压力巨大的一年。在这...
记忆中的红薯粉高一作文【精简... 记忆中的红薯粉高一作文 篇一红薯粉是我童年时的美味回忆。每逢夏日,妈妈总是会准备一碗清爽可口的红薯粉...
新的计划本高二作文(优选5篇... 新的计划本高二作文 篇一:为什么制定计划是成功的关键在我们的生活中,计划是非常重要的。无论是在学习、...
那年匆匆高二作文【精选3篇】 那年匆匆高二作文 篇一初次踏入高二,我仿佛感受到时间的流逝之快。仿佛昨天还是迷茫的高一新生,而今天已...
记得高三作文 记得高三作文  在生活、工作和学习中,许多人都有过写作文的经历,对作文都不陌生吧,写作文可以锻炼我们...
我的命运我做主高三作文 我的命运我做主高三作文  在我们平凡的日常里,说到作文,大家肯定都不陌生吧,作文可分为小学作文、中学...
做一个聪明的人高三作文800... 篇一:做一个聪明的人高三作文800字第一篇内容:智慧的力量聪明是每个人都希望拥有的品质之一。在高三这...
高三家长寄语(精彩5篇) 高三家长寄语 篇一高三家长寄语:相信你的孩子,给予他们支持和鼓励亲爱的家长们:您好!我是一位拥有多年...
高三毕业证明范文【优选6篇】 高三毕业证明范文 篇一尊敬的校领导、老师们:我是xxx,现就读于贵校高三年级,即将毕业。在这里,我谨...
高三作文:甘当绿叶【优选3篇... 高三作文:甘当绿叶 篇一甘当绿叶,追寻自我的价值人生是一场长跑,每个人都有自己的起点和终点。有的人天...
高三活出自我作文 高三活出自我作文  繁星闪烁,点缀浩瀚无限的宇宙。众星争艳,释放灿烂之光,只为自己精彩,而在无边的浩...
生活的乐趣高三作文 生活的乐趣高三作文  在平平淡淡的学习、工作、生活中,大家都有写作文的经历,对作文很是熟悉吧,作文是...