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

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

隔离策略

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

线程池配置

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

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

1
2
3
zuul:
threadPool:
useSeparateThreadPools: true

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

1
2
3
4
zuul:
threadPool:
useSeparateThreadPools: true
threadPoolKeyPrefix: prefix-

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


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

以上

LeoQin wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
0%