Node.js看起来很有趣,但我必须错过一些东西- Node.js不是调好只运行在一个进程和线程上吗?
那么如何针对多核cpu和多cpu服务器进行扩展呢?毕竟,单线程服务器的速度越快越好,但对于高负载,我希望使用多个cpu。同样的道理也适用于使应用程序更快——现在的方法似乎是使用多个cpu并并行化任务。
Node.js如何适应这种情况?它的想法是以某种方式分布多个实例还是什么?
Node.js看起来很有趣,但我必须错过一些东西- Node.js不是调好只运行在一个进程和线程上吗?
那么如何针对多核cpu和多cpu服务器进行扩展呢?毕竟,单线程服务器的速度越快越好,但对于高负载,我希望使用多个cpu。同样的道理也适用于使应用程序更快——现在的方法似乎是使用多个cpu并并行化任务。
Node.js如何适应这种情况?它的想法是以某种方式分布多个实例还是什么?
当前回答
我使用Node worker以一种简单的方式从我的主进程运行进程。在我们等待官方方式的时候,似乎工作得很好。
其他回答
Spark2基于Spark,目前已不再维护。集群是它的继承者,它有一些很酷的特性,比如每个CPU核心生成一个工作进程,以及重生死亡的工作进程。
我使用Node worker以一种简单的方式从我的主进程运行进程。在我们等待官方方式的时候,似乎工作得很好。
这个领域的新成员是LearnBoost的“Up”。
它提供“零停机重新加载”,并额外创建多个worker(默认为cpu数量,但可配置),以提供所有world中的最佳服务。
它是新的,但似乎相当稳定,我正在我目前的一个项目中愉快地使用它。
可以使用纯TCP负载均衡器(HAProxy)将NodeJS扩展到多个盒子,每个盒子运行一个NodeJS进程。
如果你有一些共同的知识在所有实例之间共享,你可以使用一个中央Redis存储或类似的,然后可以从所有流程实例访问(例如从所有盒子)
一种方法是在服务器上运行多个node.js实例,然后在它们前面放置一个负载均衡器(最好是非阻塞的,如nginx)。