hystrix


当访问者调用orderApi 的时候 才能访问order 服务,
但是当网络问题或者其他因素导致order服务提供无法及时响应,给用户造成不友好的体验,
因此在order api端 可以设置(hystrix) 服务降级 可以设置访问服务的时间,在规定的时间内没有给出响应,直接给用户反映“服务繁忙,请稍后再试”
熔断:是指 服务器真的宕机了,连续发多个请求都没有给反映,就会触发熔断,熔断器默认是关闭的,只会触发服务降级,当熔断器打打开时,当后面的访问条件达到熔断器设置的熔断条件而不做出响应时,熔断器就会不再调用这个服务了,直接给用户返回“服务繁忙”
hystrix 还有一种设置是半开状态,当我们请求服务器,服务器还是反应不过来,会触发熔断机制,后面可能在次尝试连接服务器,若果服务器响应了,半开状态就会转换成关闭状态
这样这是可以避免服务器雪崩,因为当用户数庞大的时候,若api服务调用方不设置熔断或者降级处理,就会一直等待服务器响应,服务器处理不过来而导致雪崩.
微服务的概念就是当你一个服务宕机后不会影响其他服务器的正常运行
spring cloud 用的是 hystrix,是一个容错组件。
Hystrix实现了 超时机制和断路器模式
Hystrix是Netflix开源的一个类库,用于隔离远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。主要有以下几点功能:
- 为系统提供保护机制。在依赖的服务出现高延迟或失败时,为系统提供保护和控制。
- 防止雪崩。
- 包裹请求:使用HystrixCommand(或HystrixObservableCommand)包裹对依赖的调用逻辑,每个命令在独立线程中运行。
- 跳闸机制:当某服务失败率达到一定的阈值时,Hystrix可以自动跳闸,停止请求该服务一段时间。
- 资源隔离:Hystrix为每个请求都的依赖都维护了一个小型线程池,如果该线程池已满,发往该依赖的请求就被立即拒绝,而不是排队等候,从而加速失败判定。防止级联失败。
- 快速失败:Fail Fast。同时能快速恢复。侧重点是:(不去真正的请求服务,发生异常再返回),而是直接失败。
- 监控:Hystrix可以实时监控运行指标和配置的变化,提供近实时的监控、报警、运维控制。
- 回退机制:fallback,当请求失败、超时、被拒绝,或当断路器被打开时,执行回退逻辑。回退逻辑我们自定义,提供优雅的服务降级。
- 自我修复:断路器打开一段时间后,会自动进入“半开”状态,可以进行打开,关闭,半开状态的转换。前面有介绍。

浙公网安备 33010602011771号