node.js - 使用node.js开发云服务

标签 node.js azure javascript-events azure-cloud-services

我正在通过Microsoft Azure使用node.js创建云服务。我一直在阅读它的工作原理。我了解到,node.js具有单个进程,并使用事件驱动的异步系统。在http服务器每秒接收大量请求的情况下(这是对云服务的预期),由于node.js使用单个进程,因此它不会开始处理非常慢的请求(因为它不是多线程的)并必须依次请求)?如果真是这样,那么使用node.js开发云服务没有任何意义。有人可以解释我的假设是对还是错?如果是正确的话,那我应该使用node.js来开发一种可能每秒接收数百万个请求的服务吗?

最佳答案

默认情况下,Node.js应用程序不是多线程的。实际上,您最多只能启动多达您拥有的最大CPU核心数量的进程。这样,每个进程都可以达到一个核心的最大处理能力,考虑到当今的技术,这是很多事情。

节点js最重要的部分是事件驱动方面。当大多数其他程序等待完成I / O操作时,node.js将继续处理队列中的下一个请求。因此,即使有大量传入请求,node.js项目实际上也可以很好地执行。

关于在多个CPU上进行多线程的第一部分是node.js在云计算世界中如此受欢迎的原因之一。与许多其他语言/环境相比,它使扩展变得容易得多。

关于node.js - 使用node.js开发云服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24003905/

相关文章:

node.js - 由于 node-pre-gyp 错误,无法安装 npm

azure - 增加azure httptrigger函数中的节点堆内存大小

c# - 使用 WriteRange 和 MD5 上传 Azure 文件存储已被淘汰

javascript - 如何在JavaScript中添加两个值

JavaScript 事件对象?

node.js - SES : Accessing email body inside lambda function

node.js - Webpack Angular 4 启动问题

javascript - 如何监听 `request.on(' end',` 内发生的错误

azure - 在 Azure Blob 存储上设置 STS header

javascript - evt = (evt) 的含义?事件 : window. 事件