面试题答案
一键面试熔断机制保护系统的方式
Hystrix断路器通过监控依赖服务的调用情况,当失败率或错误率达到一定阈值时,就会触发熔断。熔断后,后续对该依赖服务的调用不再实际执行,而是直接返回一个预设的 fallback 响应,避免了因依赖服务故障导致大量线程阻塞,从而保护系统整体的可用性。
熔断的三个状态及状态转换过程
- 关闭(Closed)状态
- 描述:正常情况下,断路器处于关闭状态,此时依赖服务的调用都正常执行。Hystrix会统计一定时间内的请求数、失败数等指标。
- 转换条件:当在统计时间窗口内,失败请求数占总请求数的比例(错误率)达到设定的阈值(如50%),且请求数达到最小请求数阈值(例如10个请求),断路器将切换到“打开(Open)”状态。
- 打开(Open)状态
- 描述:断路器打开后,所有对该依赖服务的请求都会立即被截断,不再实际调用依赖服务,而是直接返回 fallback 响应。同时,Hystrix会启动一个计时器。
- 转换条件:当计时器到期(如10秒),断路器会进入“半开(Half - Open)”状态。
- 半开(Half - Open)状态
- 描述:处于半开状态时,Hystrix会允许一定数量(如10个)的请求通过,去实际调用依赖服务。如果这些请求大部分(如超过80%)成功,断路器会切换回“关闭(Closed)”状态,表示依赖服务已恢复正常;如果这些请求中失败的比例较高,断路器会再次切换回“打开(Open)”状态。