Next js 后端默认是多线程的吗?

问题描述 投票:0回答:2

目前,我正在使用

Node js
命令,在
Next js
内使用内置
next start
服务器启动我的项目,但我不确定它是否启用了多线程。

我的问题是,您是否建议使用内置

Node
后端或使用
自定义服务器
启动 Next js 项目并使用
node clusters
启用多线程,以获得最大性能和速度?

javascript node.js multithreading next.js pm2
2个回答
1
投票

Node 默认是单线程的,因此“下次启动”。我使用pm2集群模式,没有遇到任何问题。

要启动集群,请执行以下操作:

  1. 在 package.json 旁边创建 pm2.json 文件
{
    "apps": [
        {
            "name": "myNextApp",
            "script": "node_modules/next/dist/bin/next",
            "args": "start",
            "cwd": "./",
            "instances": "max",
            "exec_mode": "cluster",
            "out_file": "/var/log/myNextApp/myNextApp.log",
            "error_file": "/var/log/myNextApp/myNextAppError.log",
            "watch": "true"
        }
    ]
}

请注意“script”:如果您在 Next 中使用 Typescript,则使用“node_modules/next/dist/bin/next”,此配置已有 6 个月的历史,也许您需要更改此行,请检查 pm2 文档

  1. 在package.json中添加:
{
   ...
   "scripts: {
      ...,
      "pm2": "pm2"
      },
   ...,
}
  1. 添加 devDependencie pm2(纱线添加 -D pm2)

  2. 要启动集群,您应该能够使用:

npm run pm2 start pm2.json
or
yarn pm2 start pm2.json

来自项目根目录

附注我对是否需要将 pm2 添加到项目 deps 有一些疑问,我认为当您使用 npm i -G 和 apt-get 安装yarn/pm2 时存在一些差异,这可能会导致更轻的配置,但我不确定...


0
投票

您可以在负载均衡器后面的多个实例(例如容器)上运行 Next.js,而不是多线程和集群。它为您提供水平缩放。

© www.soinside.com 2019 - 2024. All rights reserved.