![]() | 1 rrfeng 2018-06-11 11:27:12 +08:00 via Android ![]() 这个是 nodejs 控制的... |
![]() | 2 torment5524 OP @rrfeng 感谢答复,node.js 没用过,被折腾的不轻。 |
3 a7a2 2018-06-11 11:46:58 +08:00 ![]() nodejs 又不是 python 为何一份代码要开 n 多端口做相同的服务???对开发者能力表示疑问? |
![]() | 5 suconghou 2018-06-11 12:42:42 +08:00 via Android ![]() 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 ![]() @torment5524 首先,node 进程是 pm2 启动的,不是 nginx; 其次 ,你指出 node 进程是有多少进程就有多少个端口号,那 pm2 就不是以 cluster 模式启动的,应该是 fork 模式,端口号的使用规则要看你的代码或者相关配置,增加进程和减少进程可以参考 pm2 的命令行用法。 |