Hystrix(“豪猪”)介绍

### Hystrix Hystrix豪猪)是由 Netflix 开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性 [^3]。 #### 功能 - **包裹请求**:使用 HystrixCommand 包裹对依赖的调用逻辑 [^3]。 - **跳闸机制**:当某服务的错误率超过一定的阈值时,Hystrix 可以跳闸,停止请求该服务一段时间 [^3]。 - **资源隔离**:Hystrix 为每个依赖都维护了一个小型的线程池(舱壁模式)。如果该线程池已满,发往该依赖的请求就被立即拒绝,而不是排队等待,从而加速失败判定 [^3]。 - **监控**:Hystrix 可以近乎实时地监控运行指标和配置的变化,例如成功、失败、超时、以及被拒绝的请求等 [^3]。 - **回退机制**:当请求失败、超时、被拒绝,或当断路器打开时,执行回退逻辑。回退逻辑由开发人员自行提供,例如返回一个缺省值 [^3]。 - **自我修复**:断路器打开一段时间后,会自动进入“半开”状态(探测服务是否可用,如还是不可用,再次退回打开状态) [^3]。 #### 使用场景 Hystrix 适用于分布式系统中,当系统依赖多个远程服务时,为了防止某个服务出现故障而导致级联故障,可使用 Hystrix 进行容错处理,提高系统的稳定性 [^1][^3]。在 Spring Cloud 中,可结合 Ribbon 或 Feign 使用,例如在添加 Hystrix 依赖后,可实现 Ribbon 结合 Hystrix 的功能 [^1][^2]。 ### Ribbon Ribbon 是 Spring Cloud 中的客户端负载均衡器 [^1]。 #### 功能 实现请求的合理分配,提高系统的性能和可用性。它可以根据不同的负载均衡算法,将客户端的请求分发到多个服务实例上,从而平衡各个服务实例的负载 [^1]。 #### 使用场景 在微服务架构中,当一个服务需要调用另一个服务的多个实例时,Ribbon 可以帮助进行负载均衡,选择合适的服务实例处理请求。例如,在 Spring Cloud 体系下,Ribbon 常与 Eureka 配合使用,Eureka 作为服务注册中心提供服务发现功能,Ribbon 从 Eureka 获取服务列表并进行负载均衡 [^1]。 #### 使用示例 在 Spring Cloud 中使用 Ribbon 结合 Hystrix,需要先添加 Hystrix 依赖: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency> ``` 另外,在设置超时时间时,需要注意 Spring Cloud 的 Feign 和 Ribbon 和 Hystrix 超时时间的关系。一般设置 Ribbon(Feign)的超时时间 <= Hystrix 超时时间,以保证在正常返回结果之前不会发送熔断 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值