Spring Cloud 断路器排查

∥☆過路亽.° 提交于 2019-12-01 01:13:26

问题

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]

问题原因

  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 线程池队列配置 如何设置线程池大小

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!