Node.js如何提高可伸缩性?

Node.js如何提高可伸缩性?,node.js,Node.js,我使用Node.js创建了一个HTTP服务器。当它收到一个请求时,它会进入数据库,获取一些数据并将其返回给响应对象。DB调用是异步的,因此单个线程能够处理大量并发连接 但现在这意味着大量的请求同时运行,这可能会导致数据库阻塞。虽然web服务器能够处理并发请求,但DB层不能 对于使用Node.js编写的多个web应用程序来说,这一定是一个常见问题。那么,我为什么要使用Node.js来实现可伸缩性呢 谢谢, Yash好吧,主要原因是DB阻塞的时间比使用同步web应用程序和som其他web服务器要晚得

我使用Node.js创建了一个HTTP服务器。当它收到一个请求时,它会进入数据库,获取一些数据并将其返回给响应对象。DB调用是异步的,因此单个线程能够处理大量并发连接

但现在这意味着大量的请求同时运行,这可能会导致数据库阻塞。虽然web服务器能够处理并发请求,但DB层不能

对于使用Node.js编写的多个web应用程序来说,这一定是一个常见问题。那么,我为什么要使用Node.js来实现可伸缩性呢

谢谢,
Yash

好吧,主要原因是DB阻塞的时间比使用同步web应用程序和som其他web服务器要晚得多。数据库比Apache等Web服务器强大得多

您所描述的是一个常见的可伸缩性问题。你总是会遇到瓶颈。有时是web应用程序不够一致和高效,有时是数据库。您可以通过创建复制群集或其他对我们的choosen DB有效的技术来扩展数据库。如果需要,还可以添加新的node.js服务器


底线是你们已经选择了更高效的web应用服务器,所以你们可能会在其他地方窒息,不得不处理这个问题。但您仍然能够处理比以前更多的请求。

我知道总有一天会遇到瓶颈。但是为什么像node.js这样高效的web服务器会推迟它呢?无论使用哪个web服务器,到DB的查询都是相同的。它将占用数据库资源,锁定某些表,等等。Apache将阻止查询返回。Node.js将不会。但这不会改变DB方面的任何事情。“我遗漏了什么吗?”雅什,这叫集群。您的数据库应该能够做到这一点。@Yash另外,您可以利用许多并发模型来消除锁,例如,您可以读取脏数据或不锁定
SELECT
操作的表。我知道有几种标准方法可以防止数据库出现瓶颈。我的主要问题是:Node.js如何帮助延迟瓶颈?@Yash它的体系结构是为了实现高并发性,因为这些异步调用。您可以阅读Reactor模式。这实际上是一个关于如何设计和运行高可用性数据库的问题——allIs的node.js是DB访问层还是DB本身?这听起来很复杂,但问题不一定是由node.js引起的。