当前位置: 首页 > 知识库问答 >
问题:

HystrixObservableCommand的Hystrix队列大小?

逄兴昌
2023-03-14
..
.andThreadPoolPropertiesDefaults(HystrixThreadPoolProperties.Setter()
                            .withMaxQueueSize(10)
                            .withQueueSizeRejectionThreshold(10));
    null

共有1个答案

阎鸿煊
2023-03-14

Hystrix并行处理由阻塞队列处理,当达到阻塞大小时,Hystrix实现似乎将拒绝请求(并执行回退方法)。似乎没有办法绕过这一点,也没有办法专门检测请求是否因队列大小而被拒绝。

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

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

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

 类似资料:
  • 我正在使用Hystrix库处理网络调用。这是我用于线程池配置的内容 我正在使用公共的HytrixCommandKey和HytrixThreadPoolKey创建一个包含1000个HytrixCommand对象的加载。但是线程池在服务前100个线程之后执行回退逻辑,而不是使用threadpool队列。这可以通过将threadpool,coreSize设置为1000来解决。但我使用的是java,将co

  • 我需要能够更改ThreadPoolExecator的任务队列的大小。当然,BlockingQueue不支持更改大小,ThreadPoolExecitor不支持更改队列。 所以,我想到的方法是使用ThreadPoolExecutor。shutdownNow(),它返回了一个尚未执行的可运行程序列表。然后,我可以创建一个具有所需队列大小的新执行器,并重新提交所有任务。 问题是在shutdownNow(

  • 本文向大家介绍Spring Cloud Hystrix 线程池队列配置(踩坑),包括了Spring Cloud Hystrix 线程池队列配置(踩坑)的使用技巧和注意事项,需要的朋友参考一下 背景: 有一次在生产环境,突然出现了很多笔还款单被挂起,后来排查原因,发现是内部系统调用时出现了Hystrix调用异常。在开发过程中,因为核心线程数设置的比较大,没有出现这种异常。放到了测试环境,偶尔有出现这

  • 我正在尝试定期检查Kafka某个主题的队列大小。尽管如此,我甚至不知道如何检查这个指标一次。我对Kafka完全陌生,所以我不知道该怎么做。我认为这将涉及创建一个生产者或消费者来与队列交互,但我遇到了一个障碍。

  • 问题内容: 我一直在查看我的elasticsearch日志,但遇到了错误 查找错误后,普遍的共识是增加队列的大小,如此处所述-https: //www.elastic.co/guide/en/elasticsearch/reference/current/modules- threadpool.html 我的问题是实际上该如何做?我缺少某处的配置文件吗? 问题答案: 要更改队列大小,可以将其添加到

  • 我正在使用Spring3调度和线程池框架。我想在不同的时间/间隔安排不同的任务。我希望在开始另一项任务之前,每个任务都运行到完成。 例如,如果我有task1和task2:task1每10分钟运行一次,task2每天运行一次需要1分钟,运行5分钟。 如果task1和task2计时器同时触发,我希望task1和task2被放在队列中,一次只取消一个任务。 我知道我可以用一个Spring ThreadP