[熔断器] 熔断机制和Hystrix介绍
1.雪崩效应
目前的后台服务通常是由多个组件完成,或者多个服务会被实现为多个微服务。用户发情请求后,会出现多个服务的链式调用来完成整个操作。(如 检查参数->查询缓存->查询数据库)
当调用链的某一步失效时,可能导致流量穿透到下一个服务,导致下一个服务崩溃(如缓存击穿导致数据库崩溃),最终导致整个后台的服务逐渐崩溃而不可用。
2.熔断机制
当某一个系统部分出现过载时,对其进行阻断。表现为服务降级,即对某些服务有策略地限流。
3.Hystrix
源自于Netflix。其设计目的是阻止故障连锁反应,快速返回失败并进行恢复,服务回退和降级,提供实时监控和告警功能。
1)隔离
线程隔离:在用户请求和服务之间加入一个线程池,如果已满将立即拒绝。
信号隔离:使用信号量而非线程池来限制用户最大请求数量。
2)熔断
当某个服务大量超时或者调用过慢时,对该服务进行熔断。
后续调用请求不会继续调用目标服务,而是直接返回以期快速释放资源。直到目标服务情况好转。