HystrixCommand请求被拒绝,默认配置不被覆盖

问题描述

我正在使用HystrixCommand强制长时间运行的查询超时。哪个工作正常。查询配置的时间超时。 但是如果负载断路器打开并且开始拒绝该请求,并且出现以下错误。

从java.util.concurrent.ThreadPoolExecutor@51cd4319中拒绝的任务java.util.concurrent.FutureTask@59c4b527 [正在运行,池大小= 10,活动线程= 10,排队的任务= 0,已完成的任务= 12759]

我试图覆盖Archaius为线程池提供的默认配置(例如corepool大小,最大池大小,队列大小等。)。但不知何故没有效果。以下是我的application.yml文件中的配置。

hystrix: 命令: queryTimeOutHandler: 执行: 隔离: 线: 超时以毫秒为单位:600000 线程池: queryTimeOutHandler: 核心大小:200 最大尺寸:200 maxQueueSize:100 queueSizeRejectionThreshold:100 allowMaximumSizeToDivergeFromCoreSize:true

因此,在配置中,我期望线程数应该为200。它应该一次处理200个请求,并且应该将100个队列。但不幸的是它没有发生。

如何在生产环境中运行的应用程序中检查我的配置?

解决方法

您需要覆盖“ execution.isolation.semaphore.maxConcurrentRequests”

请参阅下面的详细信息。

https://stackoverflow.com/a/64452228

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...