导读:Hystrix的资源隔离策略有两种,分别为:线程池和信号量。说到资源隔离,那我们在实战中需要注意哪些点呢?
一、背景
对于Hystrix熔断器的隔离策略分别为:线程池和信号量,前面一篇已经做了详细说明 《微服务架构 | Hystrix的资源隔离策略该如何选择?》
具体使用哪种策略,需根据业务场景综合评估。一般情况下,推荐使用线程池隔离。
尽但是实战中对于Hystrix熔断器需要还需要注意哪些点呢?
二、Hystrix 实战经验分享
在线程池隔离策略下,线程池大小及超时时间的设置至关重要,直接影响着系统服务的响应能力。如线程池大小若设置的太大会造成资源浪费及线程切换等开销;若设置的太小又支撑不了用户请求,造成请求排队。而超时时间设置的太长会出现部分长耗时请求阻塞线程,造成其它正常请求排队等待;若设置的太短又会造成太多正常请求被熔断。
建议在理解下图先阅读《微服务架构 | Hystrix的资源隔离策略该如何选择?》
对此Hystrix官方给的建议如图:
即转换为以下计算公式:
-
线程池大小 = 服务TP99响应时长(单位秒) * 每秒请求量 + 冗余缓冲值
-
超时时间(单位毫秒) = 1000(毫秒) / 每秒请求量
例如某服务TP99情况下每秒钟会接收30个请求,然后每