首页 > 解决方案 > 如何处理具有不同内存占用的 RabbitMQ 任务排队到同一个交换?

问题描述

想象一下本质上收集“任务”的 RabbitMQ 队列。然后,这些任务由prefetch值为 100 的 Node.js 应用程序检索。因此,该应用程序最多可预取 100 个任务,然后在可能的情况下处理它们。

这种设置的问题是任务可能有不同的内存占用,因此很难预测prefetch在 Node.js 应用程序内存不足之前我可以设置什么样的值。对于一些较小的任务,我可以预取其中的 100 个并且应用程序会运行良好,然后一些任务有效负载可能会导致应用程序使用比平时更多的内存,并且在应用程序用完之前只有 50 个预取是可以的的记忆。

我可以将这些任务拆分到不同的队列中,或者尝试对它们进行规范化,以便它们具有更标准的内存占用。您还能建议哪些其他类型的方法?

标签: node.jsmemoryrabbitmq

解决方案


推荐阅读