首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >10m+/日作业队列中的工人比例

10m+/日作业队列中的工人比例
EN

Stack Overflow用户
提问于 2016-09-24 01:54:13
回答 2查看 147关注 0票数 0

我们希望升级基于PHP的AWS队列工作者体系结构,因为我们每天都在处理10M+作业,而且基础设施越来越昂贵。

我们的作业几乎不使用任何内存,但是由于HTTP响应缓慢,每个作业可以运行5-10秒。

是否有人推荐支持同时在同一台机器上运行数十个工人的语言、方法或工具,或者可以非常高效地同时执行数十个作业?

非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-24 08:51:55

如果瓶颈在HTTP请求中,则应考虑使用node.js。它使您的代码编程非常容易,因此它异步运行。我假设在您当前的实现中,HTTP请求阻塞了CPU线程。这是效率低下的,因为CPU在等待请求完成时可以执行其他操作,然后可以解析结果。这在node.js和优秀的异步库中几乎是微不足道的。

异步实现可以使程序的速度提高10到100倍,甚至更快。特别是当“等待HTTP请求”比实际计算花费更多时间的时候。使用一组微型或nano实例,node.js (或一般的javascript )是一种单线程语言,因此通常不需要多个内核。

另一种方法是将SNS服务附加到SQS,并设置一个解析票证的Lambda函数。有关拉姆达中的介绍,请参阅此页面。也许你有高峰和低谷,那么这种方法应该更有成本效益。当负载均匀分布时,AWS比EC2更昂贵。

票数 1
EN

Stack Overflow用户

发布于 2016-09-24 09:55:48

我运行过类似的系统,在多台机器上使用了30到200多个基于PHP的工作人员的副本。我是从Supervisord开始的,在那里有一个“numprocs”配置,说明要启动多少个特定的程序。您可以有几个这样的配置组。

在成本优化方面,考虑“现场实例”以降低每台机器每小时的价格。为了使每个系统尽可能快地运行,您需要确保它们是预先安装好的,并且安装了它们所需的所有软件和配置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39671757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档