在 Node v0.12.2 中,集群模块支持 Round-Robin (RR) 负载均衡,与之前的 OS 级负载均衡相比,可以确保负载分布更均匀。
所以现在我们被宠坏了:
我知道这篇出色的帖子以及关于 SO 的其他 答案,但没有一个解决了具有 RR 模式的较新集群模块。所以问题归结为:
仅根据它们的负载平衡能力来判断,我应该使用pm2
ornginx
吗?
如果它只是
pm2
与nginx
nginx 相比。更好:两者兼而有之。最佳:更广泛的设置。
如果您想要最成熟的负载均衡功能,请使用HAProxy
. 最好做一件事。您将获得 SSL 终止、ACL 并且它非常轻量级。我无法用数字来证明,但我觉得它对 http 请求的影响最低。这是一本好书。
如果您还需要提供(至少一些)静态内容,您的 goto 选项是nginx
因为它在该领域的卓越功能。在您的列表中,它也是唯一提供此类功能的。除了node
自己,但做得很差。
pm2
感觉非常重 IMO 并且往往会更频繁地断裂。它的进程负载平衡功能非常好,可以确保节点进程的正常运行时间。它抽象了cluster
。
cluster
感觉只是“被固定”到最低限度。在过去,也许仍然是操作系统级别的支持导致不同平台上的不同行为。例如,偏向单一进程。
我目前的设置是:
HAProxy
用于集群范围的负载平衡,包括平衡每台机器的多个进程实例pm2
用于进程负载平衡