Spring Cloud Edgware新特性之二:如何配置Zuul的Hystrix线程池 http://www.itmuch.com/spring-cloud/edgware-new-zuul-hystrix-thread-pool/ (主要是翻译的官网)
spring-cloud中zuul的两种隔离机制实验 http://www.importnew.com/28626.html
https://www.liangzl.com/get-article-detail-19047.html Hystrix 服务的隔离策略对比,信号量与线程池隔离的差异
总结
zuul.ribbon-isolation-strategy: thread 这步改了之后才会使用隔离机制改为线程隔离,然后hystrix.threadpool.default.coreSize 才会有效,而且如果网关压测不过可以尝试调大这个值
具体线程池配置
zuul:
thread-pool:
use-separate-thread-pools: true #这种会给网关接入的每个路由都分配一个独立的线程池
thread-pool-key-prefix: zuulgw #线程池里面线程的前缀
通过jvisulvm查看到,确实是独立的线程池,线程名称如hystrix-zzulgwuser-service-v1-9
使用独立线程的好处就是线程池隔离,每个应用都是独立的线程池,一个应用假设响应很慢,把线程池毫光,但是不会影响其他应用;缺点就是,如果线程池coresize配置的很大,接入zuul的应用又很多,那将会创建大量的线程,有可能导致zuul网关内存溢出的