为特定任务运行10000个工作人员与运行少数工作人员

loading...


0

我有一个系统,其中我有1000个产品,它们是异步创建的,一方面将它们推入队列,另一端是工作组侦听队列 . 通过调用第三个patry提供者的微服务来创建产品 .

以下是两种实施方法:

First approach
在这种方法中,我们将每个产品推送到他们自己的特定队列中,即产品A将转到队列A,产品B将转到队列B.如果我正在运行10个工作人员来监听每个队列,那么总共10,000名工作人员正在运行在我的系统上 .

这种方法确保我的所有产品都是孤立运行的,即一个产品的第三方api性能不会影响其他产品(因为它们由不同的工作人员在不同的队列中运行),但是坐在这里的许多闲置工作人员将增加服务器上的负载(如所有产品都没有大规模创建) .

Second approach
在这种方法中,我尝试通过使用单个队列并运行n个工作者(n <= 1.5 * number_of_cores)来监听同一队列来减少工作者数量 . 我们减少了这里的工作人员数量,这肯定会因为闲置的工作人员而导致每台服务器的负载下降,但是如果任何提供商api开始缓慢响应,整个系统都会受到影响 .

请建议我应该采用哪种方法,或任何其他适合此用例的方法 . 谢谢

loading...

0回答

No Data

评论

暂时没有评论!