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

相關文章
相關標籤/搜索