我运行一个小的socket.io node.js应用程序,它总是有少量的并发用户。大多数情况下,它可以在单个进程中运行100%(无论是在我的Linode还是Heroku上)。在两台服务器上负载均衡两个单独的node.js进程?
我希望能在几天内宣传一下,在此期间我会期待体面的流量。这意味着并发websocket/xhr-polling连接。但是,两个socket.io连接不要不是必须相互通信。
该应用程序在我的Linode上运行了很长一段时间,但我最近将它转移到了一个免费的heroku dyno。即使使用xhr-polling(heroku本身不支持websockets),它运行得非常快。
我很好奇我如何利用我的Linode本质上运行和负载平衡的应用程序。但是如果它开始放慢速度,推送用户到heroku dyno运行(反之亦然)。这应该是可能的,像node-http-proxy,但我有一个艰难的时间让它正常运行。希望我可以对它进行微调,或者我可以轻弹一个开关,它将开始将用户平衡到第二个站点。
基本上,我只是希望指出正确的方向。代码会很好,但不是必需的。该解决方案甚至不必在节点中。
谢谢!
[1]我已经尝试了nodejitsu以及相当一段时间,只是没有发现它准备好生产使用。
编辑:我应该使用简单的roundrobin,如解释here?如果我想相互支持一个呢?
既然Heroku已经有了一个有效的负载平衡器,为什么不把它们用于生产应用主机?如果您的流量超出预期,他们的设置将允许您轻松快速地扩展。 – redhotvengeance
由于第二台测功机的售价为34美元,而且我已经拥有至少一个月的完美Linode。我是学生。 :) - 另外,我不确定Heroku是否能正确处理多个dynos上的socket.io。 – switz
这是[Cluster](http://nodejs.org/api/cluster.html)的用途,但它仍处于实验状态。 – mekwall