![]() |
1
2
首先,一个节点。js应用程序可以处理许多仅仅从数据库读写的作业,因为这些活动大多是异步的,这意味着节点。js在等待数据库响应上一个请求时,大部分时间都在无所事事。所以,您可能只有一个节点。js应用程序可以处理至少数百个作业,甚至数千个作业(具体取决于作业所做的)。事实上,如果一个节点。js应用程序可能会在您的数据库中投入比数据库可能完成的更多的工作。 然后,如果要缩放工作节点的数量。js应用程序正在运行这些作业,您可以使用child\u进程模块简单地启动任意数量的工作应用程序(以及硬件可以处理的任意数量)。您可以在主节点中创建一个中心工作队列。js应用程序。然后,创建一组child\u进程,其任务是从工作队列中获取N个项目并进行处理。注意,我建议您一次抓取N个项目,因为只有一个节点。由于对数据库的异步I/O,js进程可能可以同时处理多个单独的作业。 您可能还想探索甚至不需要工作队列的集群模块。您只需启动主应用程序的任意多个集群实例,它们都可以共享工作负载(既可以服务网页,也可以处理长时间运行的作业)。通常的指导原则是为计算机中的每个CPU设置集群实例。因此,如果您有4个核心,那么您将建立一个集群,其中总共有四台服务器。 |