-2

我将使用 Nodejs 来处理一些 CPU 密集型循环操作,并向注册用户发送电子邮件,因为 PHP 在运行和冻结站点期间使用了太多。

一件事是Nodejs将在不同的服务器上并使用MySQL中的外部连接发出请求。

我听说外部数据库连接对性能不利。

这是真的?这样做有什么利弊吗?

4

1 回答 1

0

请记住,在 Node 中运行 CPU 密集型操作时,整个应用程序会阻塞,因为它在单个线程中运行。如果您要在 Node 中运行 CPU 密集型操作,请确保将其生成到子进程中,该子进程的唯一工作是运行计算,然后返回主应用程序。这将确保您的 Node 应用程序能够在处理数据时继续响应收入请求。

现在,关于你的问题。将数据库放在不同的服务器上是非常普遍的,通常是一种很好的做法。如果您的数据库完全位于不同的数据中心,您可能会遇到性能问题。您的数据库服务器(物理上)离您的应用程序服务器越远,每个请求的延迟就越大。

如果这些请求是 CPU 密集型的,出于几个原因,您应该考虑研究一种排队机制。一,它确保即使在应用程序崩溃的情况下,您也不会丢失正在处理的请求。第二,您可以监控队列,并在操作堆积到单个应用程序无法在另一个应用程序进入之前完成处理的情况下扩展处理队列的工作人员数量。

于 2013-08-13T06:33:53.493 回答