简单来说,具体的设计原则如下:
1、防止单个服务的故障耗尽整个服务的Servlet容器的线程资源
2、快速失败机制,如果某个服务出现了故障,则调用该服务的请求快速失败,而不是线程等待
3、提供了回退fallback方案,在请求发生故障时,提供设定好的回退方案
4、使用熔断机制,防止故障扩散到其他服务
5、提供熔断器的监控组件Hystrix Dashboard,可以实时监控熔断器的状态等相关信息
HyStrix的工作机制
首先,当服务的某个API接口的失败次数在一定时间内小于设定的阀值时,熔断器处于关闭状态,该API接口正常提供服务。当该API接口处理请求的失败次数大于设定的阀值时,Hystrix判定该API接口出现了故障,打开熔断器,这时,请求该API接口会执行快速失败的逻辑(fallback回退的逻辑),不执行业务逻辑,请求的线程不会处于阻塞状态。处于打开状态的熔断器,一段时间后会处于半打开状态,并将一定数量的请求执行正常逻辑,剩余的请求会执行快速失败,若执行正常逻辑的请求失败了,则熔断器继续打开,若成功了,则将熔断器h二样熔断器就具有了自我修复的能力