我正在通过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/