Zuul切换Thread隔离模式的正确方法

默认情况下,Zuul的隔离策略是SEMAPHORE 。但一些场景下,我们可能需要将隔离策略改为THREAD 设置zuul.ribbonIsolationStrategy=THREAD 即可(注意:execution.isolation.strategy=THREAD这个配置不会生效)。当 zuul.ribbonIsolationStrategy=THREAD 时,Hystrix的线程隔离策略将会作用于所有路由。

此时,HystrixThreadPoolKey 默认为“RibbonCommand”。这意味着,所有路由的HystrixCommand都会在相同的Hystrix线程池中执行。

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

zuul:
  threadPool:
    useSeparateThreadPools: true

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

zuul:
  threadPool:
    useSeparateThreadPools: true
    threadPoolKeyPrefix: zuulgw

你可能感兴趣的:(Zuul切换Thread隔离模式的正确方法)