8

在 Node v0.12.2 中,集群模块支持 Round-Robin (RR) 负载均衡,与之前的 OS 级负载均衡相比,可以确保负载分布更均匀。

所以现在我们被宠坏了:

  1. 使用集群模块
  2. 使用pm2which 在引擎盖下使用集群模块
  3. 利用nginx
  4. 使用HAProxy

我知道这篇出色的帖子以及关于 SO 的其他 答案,但没有一个解决了具有 RR 模式的较新集群模块。所以问题归结为:

仅根据它们的负载平衡能力来判断,我应该使用pm2ornginx吗?

4

1 回答 1

4

TL;博士

如果它只是pm2nginxnginx 相比。更好:两者兼而有之。最佳:更广泛的设置。

如果您想要最成熟的负载均衡功能,请使用HAProxy. 最好做一件事。您将获得 SSL 终止、ACL 并且它非常轻量级。我无法用数字来证明,但我觉得它对 http 请求的影响最低。这是一本好书。

如果您还需要提供(至少一些)静态内容,您的 goto 选项是nginx因为它在该领域的卓越功能。在您的列表中,它也是唯一提供此类功能的。除了node自己,但做得很差。

pm2感觉非常重 IMO 并且往往会更频繁地断裂。它的进程负载平衡功能非常好,可以确保节点进程的正常运行时间。它抽象了cluster

cluster感觉只是“被固定”到最低限度。在过去,也许仍然是操作系统级别的支持导致不同平台上的不同行为。例如,偏向单一进程。

我目前的设置是:

  • HAProxy用于集群范围的负载平衡,包括平衡每台机器的多个进程实例
  • 静态内容的 CDN(例如Cloudinary
  • pm2用于进程负载平衡
于 2015-09-14T07:07:06.630 回答