Spring Cloud 断路器排查

问题

Task java.util.concurrent.FutureTask@27d69e27 rejected from java.util.concurrent.ThreadPoolExecutor@61d1c14e[Running, pool size = 10, active threads = 10, queued tasks = 0, completed tasks = 62058] html

问题缘由

  1. 并发数过大,超过了线程池线程的处理能力;
  2. 线程池未启用缓冲队列;

排查

hystrix配置

hystrix:
  threadpool:
    default:
      coreSize: 10
配置项 说明
coreSize 核心线程数:10
default 说明配置的全部的feigin client

hystrix 官方配置

配置项 默认值 说明
maxQueueSize -1, 默认不开启缓冲区;设置为-1,那么使用SynchronousQueue BlockingQueue的最大队列数
coreSIze 10 工做线程数,同Java线程池
maximumSize 10 线程池最大值
queueSizeRejectionThreshold 5 缓冲区拒绝服务阈值,如缓冲区为100,阈值为80.则达到80的话,缓冲区就不容许写入了
keepAliveTimeMinutes 1 设置存活时间,单位分钟。若是coreSize小于maximumSize,那么该属性控制一个线程从实用完成到被释放的时间。

参考

踩坑 Spring Cloud Hystrix 线程池队列配置 如何设置线程池大小java

官方配置项 服务容错保护断路器Hystrix之五:配置git

相关文章
相关标签/搜索