我将使用Nodejs来处理一些CPU密集的循环操作,并向注册用户发送电子邮件,因为PHP在运行期间使用过多并冻结了网站。
有一件事是Nodejs将在不同的服务器上并在MySQL中使用外部连接进行请求。
我听说外部数据库连接对性能不利。
这是真的吗?这样做有什么优点和缺点吗?
答案 0 :(得分:0)
请记住,在Node中运行CPU密集型操作时,整个应用程序在单个线程中运行时会阻塞。如果您要在Node中运行CPU密集型操作,请确保将其生成到子进程中,该进程的唯一工作是运行计算然后返回到主应用程序。这将确保您的Node应用程序能够在处理数据时继续响应收入请求。
现在,问你的问题。将数据库放在不同的服务器上是非常常见的,通常是一种很好的做法。如果您的数据库完全位于不同的数据中心,那么您可能会遇到性能问题。数据库服务器的进一步(物理上)来自您的应用程序服务器,每个请求的延迟时间越长。
如果这些请求严重占用大量CPU资源,您应考虑考虑排队机制,原因有两个。一,它确保即使在应用程序崩溃的情况下,您也不会丢失正在处理的请求。第二,您可以监视队列,并在操作堆积到单个应用程序无法完成处理的点之前缩放处理队列的工作者数量。