gpt4 book ai didi

node.js - 这会利用多个 CPU 内核吗?

转载 作者:可可西里 更新时间:2023-11-01 16:51:38 25 4
gpt4 key购买 nike

我的带有 Socket.IO 的 Node 服务器在 Nginx 后面运行。我正在使用 Nginx 对其进行负载平衡。客户端被定向到这些端口之一:

upstream nodes {
ip_hash;

server localhost:2000;
server localhost:3000;
server localhost:4000;
server localhost:5000;
}

我的 Node 服务器是这样设置的:

function server(port){
const http = require(`http`).createServer((req, res) => {
// http stuff ...
}.listen(port)

const io = require(`socket.io`)(http)
// socket stuff ...
}

server(2000)
server(3000)
server(4000)
server(5000)

Node 是否在不同的核心上运行这些端口中的每一个,或者我在这里究竟是什么负载平衡?

套接字代码应该放在服务器函数内部还是外部?

最佳答案

您发布的代码将运行一个服务器,在一个 CPU 内核上提供四个端口。

不过,您可以在大概四个内核上运行四个独立的服务器,只需稍作改动。将端口作为命令行参数传递:

function server(port){
const http = require(`http`).createServer((req, res) => {
// http stuff ...
}.listen(port)

const io = require(`socket.io`)(http)
// socket stuff ...
}

server(process.argv[2])

然后将它们启动为:

node index.js 2000 &
node index.js 3000 &
node index.js 4000 &
node index.js 5000 &

注意:Node.js 实际上内置了集群功能。如果您想进一步探索集群,请阅读文档:https://nodejs.org/api/cluster.html

关于node.js - 这会利用多个 CPU 内核吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38886192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com