最近對接口進行壓測,發現只要超過10個線程就報錯,都是11個線程請求就報下面的錯:
於是查看後臺日誌,定位錯誤日誌如下:
大致可以看出是hystrix的問題,於是百度hystrix的相關配置,詳細配置: https://github.com/Netflix/Hystrix/wiki/Configuration
hystrix有兩種策略:
THREAD
— 它在單獨的線程上執行,併發請求受線程池中線程數的限制SEMAPHORE
— 它在調用線程上執行,併發請求受信號量限制
看到其中:
默認10個線程,當然第11個就報錯,於是配置文件增加下面的配置:
hystrix.threadpool.default.coreSize=100
hystrix.threadpool.default.maxQueueSize=1500
hystrix.threadpool.default.queueSizeRejectionThreshold=1000
hystrix.command.default.execution.timeout.enabled=false
hystrix.command.default.execution.isolation.strategy=THREAD
問題解決。