gpt4 book ai didi

node.js - nodejs - 为什么 Node.js 可以处理大量并发持久连接?

转载 作者:可可西里 更新时间:2023-11-01 02:32:01 29 4
gpt4 key购买 nike

我知道 Node.js 擅长保持大量同时持续的连接,例如,一个聊天室供许多聊天者使用。

我想知道它是如何实现的。我的意思是无论如何它都使用由底层操作系统封装的 TCP/IP,为什么它可以很好地处理持久连接而其他人不能?

它有什么神奇之处?

最佳答案

Node.js 使所有 I/O 异步。它仅在单线程中运行,但会在等待 I/O 的同时执行其他请求或操作。

相比之下,传统的网络服务器在前一个请求完全完成之前不会为另一个请求提供服务。因此,Apache 同时运行多个进程;假设有 10 个 httpd 进程,这通常意味着可以同时处理 10 个请求 (*)。如果流程需要更多时间才能完成,您将提供更少的请求 - 或者将不得不产生更多流程,即使流程什么都不做 - 例如等待数据库消化并返回数据。

一个 node.js 进程,面对一个将转到数据库的请求,让数据库继续工作,同时它去服务另一个请求。

*) MPM 使这不是完全正确,但对于所有意图和目的来说已经足够正确了。

关于node.js - nodejs - 为什么 Node.js 可以处理大量并发持久连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10563278/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com