记一次多线程调用Feign接口失败问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次多线程调用Feign接口失败问题相关的知识,希望对你有一定的参考价值。

参考技术A 在一次调用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个线程 ),如果线程池已满调用将被立即拒绝。可以通过修改配置提高Hystrix的并发能力,在配置文件中加入:

hystrix:

  threadpool:

    default:

      coreSize: 50  # 设置线程池大小为50

以上是关于记一次多线程调用Feign接口失败问题的主要内容,如果未能解决你的问题,请参考以下文章

记一次线上压测Dubbo线程池队列满的问题

Kafka 异步消息也会阻塞?记一次 Dubbo 频繁超时排查过程

记一次线上故障--HashMap在多线程条件下运行造成CPU 100%

记一次线上故障--HashMap在多线程条件下运行造成CPU 100%

记一次线上故障--HashMap在多线程条件下运行造成CPU 100%

用gdb调试python多线程代码-记一次死锁的发现