自节点v0.12.2以来的负载平衡 - 集群,pm2或nginx

day*_*oli 7 load-balancing nginx haproxy node.js pm2

通过Node v0.12.2,集群模块支持Round-Robin(RR)负载均衡,可确保负载比以前的OS级负载均衡更均匀地分布.

所以现在我们被宠坏了选择:

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

我知道这个优秀的帖子以及SO上的其他 答案,但是没有人用RR模式解决了较新的Cluster模块.所以问题归结为:

仅根据其负载均衡功能判断,我应该使用pm2nginx

elj*_*efe 4

长话短说

如果只是pm2对比,nginx请选择 nginx。更好:两者都有。最好:更广泛的设置。

如果你想使用最成熟的负载均衡功能HAProxy。就是把一件事做到最好。您将获得 SSL 终止、ACL,而且它非常轻量级。我无法用数字证明,但我觉得它对 http 请求的命中率最低。是一本很好的读物。

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

pm2在我看来,感觉非常重,并且更容易破裂。它的进程负载平衡功能非常好,可以确保节点进程的正常运行时间。它抽象了cluster

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

我当前的设置是:

  • HAProxy用于集群范围的负载平衡,包括平衡每台机器的进程的多个实例
  • 静态内容的 CDN(例如Cloudinary
  • pm2用于进程负载平衡