相关文章:
Spring cloud - 概述
Spring cloud eureka - 注册中心
Spring cloud feign - RPC
Spring cloud ribbon - 负载均衡
Spring cloud hystrix - 断路器
Spring cloud hystrix dashboard - 断路器dashboard
Spring cloud zuul- 网关
关键字
断路(熔断)
背景
项目的微服务化,会导致原本一个简单的调用变成多级链式甚至网状调用。接口间相互依赖的层次越深,只要调用链底层中任何一个环节出故障,都会导致上层级联故障,而且越底层越容易放大故障,这种现象称为雪崩。
这种现象可能会拖垮整个项目,高并发依赖失败时如果没有隔离措施,就导致整个项目不可用。
现实电路中,如果电流过大就有可能引发火灾,导致整个家庭甚至整个区域无法正常供电。因此家用电路中都会使用保险丝等保险设备,如果某个电器导致电流过大,当达到危险阀值时就熔断当前电器的环路,牺牲当前电器的使用,以保全整个电网的正常使用。
如果微服务架构中也有一种如电路保险丝一样的隔离方法,可以设置在某种超时或者失败情形下断开依赖调用或者返回指定逻辑,牺牲新请求以换取项目的整体可用性,那么就可以提高应用的可用性和稳定性。
什么是hystrix
hystrix是Netflix公司实现的一个熔断库,spring 把它集成到spring cloud微服务解决方案中。当级联请求中的某个服务出现故障(如:阻塞)时可以自动切断当前服务,暂停对外提供服务。当服务恢复正常时,自动放开当前服务。
原理
原理
当调用一个特定服务,默认10(circuitBreaker.requestVolumeThreshold)秒内,此服务被调用超过20次(circuitBreaker.requestVolumeThreshold),并且错误率超过50%(circuitBreaker.errorThresholdPercentage),那么断路器就打开&