用node做游戏服务端请教
发布于 9 年前 作者 im-here 4438 次浏览 最后一次编辑是 8 年前 来自 问答

主要是想咨询下用node作为游戏服务端部署在linux服务器的时候,node是单线程的,假如我不用cluster模式的时候(即我一台服务器上就只启动一个node进程的时候),那我在购买服务器的时候是不是购买单核的就可以了,cpu个数什么的应该怎么处理呢? 我知道肯定一个游戏服务器不能单从这一个方面来看买什么样的配置,我就想问问一个台服务器上就启动一个node进程,不用cluster模式,服务器方面我应该怎么购买? 谢谢各位!

12 回复

哈哈,node只是javascript事件循环部分是单线程,实际上异步IO一般还有IO线程,看你服务的并发量了,估计一般的单核也够了

@iyuq 那如果是单核的话,意思就是说CPU也只用买单个的了?没必要买多个CPU的了?

@idreamshen 那cpu个数呢? 也是1个吗?

你是买网上的云服务器吗?先买单个CPU的吧

@iyuq 对,云服务器。

多核cpu的话 不用cluster就启动多个node进程,用nginx做分流就行了

@blackjack 那我node进程那的端口得要多个才行是吧。 假如我现在是2核,同一个项目启动2个进程分别是127.0.0.1:1337和127.0.0.1:1338(那这样我的代码是不是得复制2份了),然后用nginx分流这2个是吧? 但是这样的话貌似用PM2就做不了了是吧。

@imhered 弄得个for循环 执行process执行启动服务,一台服务器上就一分代码,pm2是可以的

@blackjack pm2好像要启动多个职能cluster吧,fork好像只能启动一个。

@imhered 这个要看你怎么写了,我当时是这样弄得 start.js 启动文件:

for(var i=0;i<cpu.lenght; i++{ require(“child_process”).spawn([], []);//这个地方执行 server.js ,循环启动多个服务 }

用pm2执行start.js文件

@blackjack 好的,明白了,谢谢!

回到顶部