【问题标题】:HystrixCommand request getting rejected, default configuration not getting overrideHystrixCommand 请求被拒绝,默认配置没有被覆盖
【发布时间】:2020-12-17 10:08:56
【问题描述】:

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

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

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

hystrix: 命令: 查询超时处理程序: 执行: 隔离: 线: 超时毫秒:600000 线程池: 查询超时处理程序: 核心大小:200 最大尺寸:200 最大队列大小:100 queueSizeRejectionThreshold:100 allowMaximumSizeToDivergeFromCoreSize: true

因此,对于配置,我期望线程数应该是 200。它应该一次服务 200 个请求,并且应该排队 100 个。但不幸的是它没有发生。

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

【问题讨论】:

    标签: threadpool hystrix


    【解决方案1】:

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

    请参阅下文了解更多信息。

    https://stackoverflow.com/a/64452228

    【讨论】:

      猜你喜欢
      • 2020-03-14
      • 1970-01-01
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-14
      • 2018-11-30
      相关资源
      最近更新 更多