摘要: 在一个复杂的系统里,可能你的依赖接口的性能很不稳定,有时候2ms,200ms,2s 如果你不对各种依赖接口的调用,做超时的控制,来给你的服务提供安全保护措施,那么很可能你的服务就被各种垃圾的依赖服务的性能给拖死了 大量的接口调用很慢,大量线程就卡死了,资源隔离,线程池的线程卡死了,超时的控制 (1) 阅读全文
posted @ 2023-05-26 19:18 huigui_mint 阅读(60) 评论(0) 推荐(0)
摘要: 线程池隔离技术的设计原则 Hystrix采取了bulkhead舱壁隔离技术,来将外部依赖进行资源隔离,进而避免任何外部依赖的故障导致本服务崩溃 线程池隔离,学术名称:bulkhead,舱壁隔离 外部依赖的调用在单独的线程中执行,这样就能跟调用线程隔离开来,避免外部依赖调用timeout耗时过长,导致 阅读全文
posted @ 2023-05-26 19:12 huigui_mint 阅读(170) 评论(0) 推荐(0)
摘要: 断路器深入的工作原理 1、如果经过断路器的流量超过了一定的阈值,HystrixCommandProperties.circuitBreakerRequestVolumeThreshold() 举个例子,可能看起来是这样子的,要求在10s内,经过短路器的流量必须达到20个;在10s内,经过短路器的流量 阅读全文
posted @ 2023-05-26 19:03 huigui_mint 阅读(89) 评论(0) 推荐(0)
摘要: 1、fallback降级机制 hystrix调用各种接口,或者访问外部依赖,mysql,redis,zookeeper,kafka,等等,如果出现了任何异常的情况 比如说报错了,访问mysql报错,redis报错,zookeeper报错,kafka报错,error 对每个外部依赖,无论是服务接口,中 阅读全文
posted @ 2023-05-26 18:55 huigui_mint 阅读(133) 评论(0) 推荐(0)
摘要: Hystrix command 执行时 8 大步骤第三步,就是检查 Request cache 是否有缓存。 首先,有一个概念,叫做 Request Context 请求上下文,一般来说,在一个 web 应用中,如果我们用到了 Hystrix,我们会在一个 filter 里面,对每一个请求都施加一个 阅读全文
posted @ 2023-05-26 18:50 huigui_mint 阅读(77) 评论(0) 推荐(0)
摘要: 前面了解了 Hystrix 最基本的支持高可用的技术:资源隔离 + 限流。 创建 command; 执行这个 command; 配置这个 command 对应的 group 和线程池。 开始执行这个 command,调用了这个 command 的 execute() 方法之后,Hystrix 底层的 阅读全文
posted @ 2023-05-26 18:24 huigui_mint 阅读(84) 评论(0) 推荐(0)
摘要: Hystrix 实现资源隔离,有两种策略: 线程池隔离 信号量隔离 对资源隔离这一块东西,其实可以做一定细粒度的一些控制。 1、execution.isolation.strategy 指定了HystrixCommand.run()的资源隔离策略,THREAD或者SEMAPHORE,一种是基于线程池 阅读全文
posted @ 2023-05-26 18:12 huigui_mint 阅读(205) 评论(0) 推荐(0)