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

Hystrix线程池队列工作不正常

袁雅逸
2023-03-14

我正在使用Hystrix库处理网络调用。这是我用于线程池配置的内容

HystrixThreadPoolProperties.Setter threadPropSetter = HystrixThreadPoolProperties.Setter();
threadPropSetter.withCoreSize(100);
threadPropSetter.withMaxQueueSize(1000);

我正在使用公共的HytrixCommandKey和HytrixThreadPoolKey创建一个包含1000个HytrixCommand对象的加载。但是线程池在服务前100个线程之后执行回退逻辑,而不是使用threadpool队列。这可以通过将threadpool,coreSize设置为1000来解决。但我使用的是java,将coreSize设置为1000将产生1000个线程,这将消耗大量的系统资源。

共有1个答案

卢晟
2023-03-14

在我的main方法中添加了一个thread.sleep(),这样JVM就不会在命令创建和排队之后终止。现在很好。

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

  • 在我们的应用程序中,我们使用Hystrix,因为我们调用了几个外部服务。我们希望为我们调用的每个外部服务配置一个具有特定大小的线程池。 假设有三个外部服务,称为S1、S2、S3。此外,我们有10个扩展的类,称为C1到C10。 C1和C2调用S1,应该使用相同的线程池,有15个线程。在C1的构造函数内部,我们对进行以下调用: 在一个命令(C1)的构造函数中,我们将S1的线程池大小指定为15。是一个自

  • 问题内容: 在http://marcio.io/2015/07/handling-1-million-requests-per-minute-with- golang/ 提供的示例中,很多地方都引用了该示例。 分派服务完许多工作后,工人池(chan chan工作)会不会耗尽?因为从信道和信道工作拉出第一类型后没有被补充被调用的第一次?还是我想念/误读了什么?如何为WorkerPool补充可用的工作

  • 我正计划创建可调整队列大小的可调整线程池。我正在使用unbounded LinkedBlockingQueue和一个外部设置,该设置控制排队的消息数量。最初,my corepoolsize和maxpoolsize是相等的。现在,如果我想在运行时更新我的线程池大小,我通过一个公共设置将corepoolsize和maxpoolsize设置为不同的值。我想知道你对这种做法有什么看法。 当maxpools

  • 根据我的理解,ThreadpoolExecitor有两个主要的数据结构(工人,workQueue)用于管理tasks.worker(Set)有线程,这些线程将一直运行到执行器关闭,workerQueue将所有任务保留到执行器。但是根据代码,我没有看到所有任务都被添加到workQ中ueue.task仅在第1361行添加到队列中,不会在每种情况下都执行。

  • 问题内容: 我已经看到了线程池执行程序的实现及其所提供的拒绝执行策略。但是,我有一个自定义要求- 我想拥有一个回调机制,在该机制中,当达到队列大小限制时,我会收到通知,并说何时队列大小减少到最大允许队列大小的80%。 我觉得可以通过子类化线程池执行程序来实现,但是已经有一个实现的版本吗?我很乐意在需要时提供更多详细信息和我的工作,以便提供清晰的信息。 问题答案: 我希望有一个回调机制,当达到队列大