一 Hystrix实现思路
- 他将所有的远程调用逻辑封装到HystrixCommand或者HystrixObservableCommand对象中,这些远程调用将会在独立的线程中执行(资源隔离),这里使用了设计模式中的命令模式。
- Hystrix对访问耗时超过设置阈值的请求采用自动超时的策略。该策略对所有的命令都有效(如果资源隔离的方式为信号量,该特效将失效),超时的阈值可以通过命令配置进行自定义。
- 为每一个服务提供者维护一个线程池(或者信号量),当线程池被占满时,对于该服务提供者的请求将会被直接拒绝(快速失败)而不是排队等待,减少系统的资源等待。
- 针对请求服务提供者划分出成功,失效,超时和线程池被占满等四种可能出现的情况。
- 断路器机制将在请求服务提供者次数超过一定阈值后手动或者自动切换服务一段时间。
- 当请求服务提供者出现服务拒绝,超时和短路(多个服务提供者依次顺序请求,前面的服务提供者请求失败,后面的请求将不会发出)等情况时,执行其Fallback方法,服务降级。
- 提供接近实时的监控和配置变更服务。
二 Hystrix执行流程

具体的源码分析还在总结,暂时回顾至此,待续......!
本文详细介绍了Hystrix的实现思路与执行流程。通过命令模式封装远程调用逻辑,并利用资源隔离来确保系统稳定性。文章还阐述了Hystrix如何通过超时策略、线程池管理、断路器机制和服务降级策略来应对服务调用中的各种异常情况。
173万+

被折叠的 条评论
为什么被折叠?



