使用Node v0.12.2,群集模块supports Round-Robin (RR) load balancing可确保负载比以前的OS级负载平衡更均匀地分布.
所以现在我们被宠坏了选择:
>使用cluster模块
>使用pm2
,它使用引擎盖下的集群模块
>使用nginx
>使用HAProxy
我在SO上知道这个优秀的post以及other answers,但是没有一个用RR模式解决了较新的Cluster模块.所以问题归结为:
最佳答案
@H_404_17@TL; DR
If it’s just
pm2
vs.Nginx
go for Nginx. Better: both. Best: a even broader setup.
如果您想要最成熟的负载平衡功能,请使用HAProxy.这是最好的一件事.您将获得SSL终止,ACL并且它非常轻量级.我不能用数字证明,但我觉得它对http请求的命中率最低.好读是this.
如果您还需要提供(至少一些)静态内容,那么您的goto选项是Nginx,因为它具有该领域的卓越功能.您的列表中也是唯一一个提供此类功能的人.除了节点本身,但做得很差.
pm2感觉非常重量级的IMO,并且往往更容易断裂.它的流程负载平衡功能非常好,可确保节点进程的正常运行时间.它抽象集群.
群集感觉只是“被修复”到最低限度.在过去,也许os级别的支持导致不同平台上的不同行为.例如,偏向于单个流程.
我目前的设置是:
> HAProxy用于群集范围的负载平衡,包括平衡每台计算机的多个进程实例
>静态内容的CDN(例如Cloudinary)
> pm2用于进程负载平衡