【问题标题】:Hystrix queue size for HystrixObservableCommand?HystrixObservableCommand 的 Hystrix 队列大小?
【发布时间】:2023-03-29 03:22:01
【问题描述】:

当您的 Hystrix 命令从 HystrixCommand 扩展时,您可以像这样为线程池指定队列大小:

..
.andThreadPoolPropertiesDefaults(HystrixThreadPoolProperties.Setter()
                            .withMaxQueueSize(10)
                            .withQueueSizeRejectionThreshold(10));

但是当从HystrixObservableCommand 扩展时,(显然)没有线程池可以配置队列大小。但是,如果您仍然希望在ExecutionIsolationSemaphoreMaxConcurrentRequests 达到其限制时允许对HystrixObservableCommand 的排队请求怎么办?

  1. Hystrix 是否为此提供任何支持,或者这是您必须自己推出的东西?
  2. 如果是后者,那么您将如何以惯用的方式实现这一点?

【问题讨论】:

    标签: java hystrix


    【解决方案1】:

    Hystrix 并行处理由阻塞队列处理,当达到阻塞大小时,Hystrix 实现似乎会拒绝请求(并执行回退方法)。似乎没有办法解决这个问题或专门检测请求是否由于队列大小而被拒绝。

    您可以在第 5 步的流程中看到这一点。他们将线程池或信号量拒绝回退到默认值。它没有任何选项来配置任何额外的阻塞队列。

    https://raw.githubusercontent.com/wiki/Netflix/Hystrix/images/hystrix-command-flow-chart.png

    我不确定您将如何解决这个问题,这似乎是 Hystrix 库的限制/功能

    【讨论】:

      猜你喜欢
      • 2017-01-10
      • 1970-01-01
      • 2014-11-05
      • 2010-11-24
      • 2012-06-18
      • 2010-12-29
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      相关资源
      最近更新 更多