游服务快速失败(Fail Fast),并保护下游服务。
详细解释一下,假设上游服务是A,下游服务是B,A调用B,B发生故障,开启熔断:
对于上游服务A:请求到A后直接快速返回(返回值可以是默认值,或者通过一种后背(Fallback)方案获取的值),快速失败,不再发送到B。 避免因为B故障,导致请求线程持续等待,进而导致线程池线程和CPU资源耗尽,进而导致A无响应甚至整条调用链故障。
对于下游服务B:熔断后,请求被A拦截,不再发送到B,B压力得到缓解,避免了仍旧存活的B被压垮,B得到了保护。
熔断生命周期包括三个状态:关闭,半开启,开启。
关闭状态->开启状态,A调用B请求失败次数在设定时间内达到阈值,开启熔断
开启状态->半开启状态,熔断开启后,熔断器根据设定时间间隔定期自动进入半开启状态
半开启状态->关闭状态(或开启状态),半开启状态下会从A发送少量请求到B来试探B服务是否能正常提供服务,如果请求成功率达到阈值就关闭熔断,否则就回到熔断开启状态
【java|熔断的意义】
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)