Spring Cloud Edgware新特性之二:如何配置Zuul的Hystrix线程池

Spring Cloud是当前煊赫一时的微服务开发框架。它的功能强大,组件丰富,设计优雅。目前Spring Cloud还在不断发展之中。git

Spring Cloud即将发布Spring Cloud Edgware 版本。该版本解决了很多Bug,新增了很多新特性,本系列博客将为你们详细阐述在Spring Cloud Edgware中新增的特性。github

本文为你们讲解如何配置Zuul的Hystrix线程池。spring

TIPS微信

本文中的HystrixThreadPoolKey 跟《Hystrix配置说明( https://github.com/Netflix/Hystrix/wiki/Configuration ) 》中的HystrixThreadPoolKey 是一个东西,若是你不了解HystrixThreadPoolKey ,不了解线程隔离策略,请《详细阅读Hystrix配置说明》。了解这俩术语概念后,再阅读本文,会事半功倍。框架

默认状况下,Zuul的隔离策略是SEMAPHORE 。但一些场景下,咱们可能须要将隔离策略改成THREAD 设置zuul.ribbonIsolationStrategy=THREAD 便可。当 zuul.ribbonIsolationStrategy=THREAD 时,Hystrix的线程隔离策略将会做用于全部路由。微服务

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

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

zuul:
  threadPool:
    useSeparateThreadPools: true

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

zuul:
  threadPool:
    useSeparateThreadPools: true
    threadPoolKeyPrefix: zuulgw

相关Issue路由

https://github.com/spring-cloud/spring-cloud-netflix/pull/2074

相关文章
相关标签/搜索