1
rrfeng 2018-06-11 11:27:12 +08:00 via Android 1
这个是 nodejs 控制的...
|
2
torment5524 OP @rrfeng 感谢答复,node.js 没用过,被折腾的不轻。
|
3
a7a2 2018-06-11 11:46:58 +08:00 1
nodejs 又不是 python 为何一份代码要开 n 多端口做相同的服务???对开发者能力表示疑问?
|
5
suconghou 2018-06-11 12:42:42 +08:00 via Android 1
node 单个进程就能应对高并发了 但是单个进程不能充分利用多核, node 的运行模型更不适用于 cpu 密集型计算,这些场景下多进程是有必要的 。 猜测是你服务器上有什么管理 node 进程的东西 始终开启和 cpu 核数相同的进程端口号递增 导致的问题
|
6
a7a2 2018-06-11 13:11:08 +08:00
@suconghou 还是写代码那个不行 ,查了一下,nodejs 自从出了多线程支持 cluster 后就能充分利用 cpu 每个核
|
9
suconghou 2018-06-11 14:48:00 +08:00
@a7a2 cluster node 0.6 版本就有了,cluster 就是多进程,node 就没有用户代码的多线程,用 cluster 和启多个进程是一样的,只不多 cluster 也负责了负载均衡,而这里使用了 nginx 负责负载均衡.
|
10
inflationaaron 2018-06-12 03:14:08 +08:00 via iPad
V8 就是单线程引擎,怎么 node.js 就能用上多线程了?除了 async call 是系统用 thread pool 实现的,用户没法自己写多线程的。
|
11
torment5524 OP @suconghou 用的 pm2 做的管理,我有个小疑问,既然是通过 nginx 启动的多个 node.js 进程,这几个在 js 文件里都是同一个端口,这样没有冲突么,再就是老的业务是访问 17 个端口的,这还少了一个,怎么让 pm2 出啊过 cpu 多开个进程出来。。
|
12
suconghou 2018-06-12 10:08:10 +08:00 1
@torment5524 首先,node 进程是 pm2 启动的,不是 nginx; 其次 ,你指出 node 进程是有多少进程就有多少个端口号,那 pm2 就不是以 cluster 模式启动的,应该是 fork 模式,端口号的使用规则要看你的代码或者相关配置,增加进程和减少进程可以参考 pm2 的命令行用法。
|