Javascript 当大量请求同时到达web服务器时,如何工作?NODEJS

Javascript 当大量请求同时到达web服务器时,如何工作?NODEJS,javascript,node.js,real-time,nonblocking,Javascript,Node.js,Real Time,Nonblocking,在NODEJS中: 如果节点不使用多个线程,那么我们只能同时运行一个函数。当大量请求同时到达web服务器时,这如何工作 从理论上讲,如果大量请求发生在同一秒钟内,或者如果每个请求都要做一些需要花费一段时间的事情,比如数学计算,那么您的服务器可能会陷入困境。要么不响应行“末尾”的人(延迟毫秒),要么永远不完成Node为服务行“前端”的请求而需要做的所有事情 一般来说,节点采取的策略是,如果要执行长时间的操作(如查询数据库),则程序的执行不应坐等,而应在数据库查询最终完成时“回调”其他函数 我在第二

在NODEJS中: 如果节点不使用多个线程,那么我们只能同时运行一个函数。当大量请求同时到达web服务器时,这如何工作


从理论上讲,如果大量请求发生在同一秒钟内,或者如果每个请求都要做一些需要花费一段时间的事情,比如数学计算,那么您的服务器可能会陷入困境。要么不响应行“末尾”的人(延迟毫秒),要么永远不完成Node为服务行“前端”的请求而需要做的所有事情

一般来说,节点采取的策略是,如果要执行长时间的操作(如查询数据库),则程序的执行不应坐等,而应在数据库查询最终完成时“回调”其他函数

我在第二节中更多地讨论了这一点。你可以在谷歌上搜索“node.js是癌症”来获取你正在谈论的其他例子

但是这种策略的流行是Node和其他语言/框架之间的主要区别之一:Javascript就是这样处理的

现在,在实践中,确实发生了一些事情

首先,任何生产节点应用程序都应该使用集群或某种提供负载平衡的解决方案来运行。因为您的应用程序将有多个进程工作,所以您的解决方案可以一次完成多个任务

其次,一般来说,Node.js运行得很好,因为它不需要等待一切。它让你的服务器忙,而不是冷却它的喷气机等待做一些事情


第三,是的,你必须小心你在服务器上所做的事情。如果某件事情需要花费太长时间(修改数据库中的所有记录),最好在后台通过某种工作队列系统进行:“嘿,我需要在数据库中的所有(这些)记录中更新此人的用户名”可能应该由另一个Node.js进程作为工作进程来完成。

这是一次一个。阅读关于页面: