十一、微服务网关之Zuul的Hystrix隔离策略和线程池


Spring Cloud中,Zuul默认已经整合了Hystrix,而Hystrix有隔离策略——THREADSEMAPHORE

隔离策略

  • 默认情况下,Zuul的隔离策略是SEMAPHORE
  • 可设置zuul.ribbonIsolationStrategy=THREAD将隔离策略改为THREAD

线程池配置

当设置隔离策略为THREAD时,Hystrix的线程隔离策略将作用所有路由,HystrixThreadPoolKey 默认为RibbonCommand,这意味着,所有路由的HystrixCommand都会在相同的Hystrix线程池中执行。

可使用以下配置,让每个路由使用独立的线程池:

zuul:
  threadPool:
    useSeparateThreadPools: true

的HystrixThreadPoolkey 将与每个路由的服务标识相同。如果想为HystrixThreadPoolKey添加前缀,可使用类似如下的配置:

zuul:
  threadPool:
    useSeparateThreadPools: true
    threadPoolKeyPrefix: prefix-

HystrixThreadPoolKey将变为${profix}-{服务标识}


该文章摘自《Spring Cloud 与 Docker 微服务架构实战(第二版)》

以上


文章作者: Qliang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Qliang !
评论
 上一篇
十二、统一管理微服务配置之Spring Cloud Config 十二、统一管理微服务配置之Spring Cloud Config
为什么要统一管理微服务配置对于Spring Boot单体应用,在启动时指定spring.profiles.active={profile}来加载不同环境下的配置。 在微服务架构中,这种方式未必适用,微服务架构对配置管理有着更高的要求,如:
2019-01-27
下一篇 
十、微服务网关之Zuul容错与回退 十、微服务网关之Zuul容错与回退
Spring Cloud中,Zuul默认已经整合了Hystrix。 Zuul回退编写Zuul回退类: @Component public class MyFallbackProvider implements FallbackProvide
2019-01-26
  目录