在一次调用FeignClient时,开启了40多个线程调用,然而每次只能调通10个。查看日志发现:
Task java.util.concurrent.FutureTask@2019af96 rejected from java.util.concurrent.ThreadPoolExecutor@78cc480d[Running, pool size = 10, active threads = 10, queued tasks = 0, completed tasks = 0]
根据其提示我们可以看出线程池大小只有10,从而拒绝执行新的线程,触发了Hystrix熔断机制。查阅Hystrix文档发现Hystrix为每个依赖提供一个小的线程池(或信号)(默认10个线程),如果线程池已满调用将被立即拒绝??梢酝ü薷呐渲锰岣逪ystrix的并发能力,在配置文件中加入:
hystrix:
? threadpool:
? ? default:
? ? ? coreSize: 50? # 设置线程池大小为50