我运行一个小的 socket.io node.js 应用程序,它总是有少量并发用户。在大多数情况下,它可以 100% 的时间在单个进程上运行(无论是在我的 Linode 还是 Heroku[1] 上)。
我希望将它宣传几天,在此期间我预计会有相当多的流量。这意味着并发 websocket/xhr-polling 连接。但是,两个 socket.io 连接不必相互通信。
该应用程序在我的 Linode 上运行了很长一段时间,但我最近将其转移到了一个免费的 heroku dyno 上。即使使用 xhr-polling(heroku 本身不支持 websockets)运行它也非常快。
我很好奇如何利用我的 Linode 来运行和负载平衡应用程序。但是,如果它开始变慢,请将用户推到正在运行的 heroku dyno(反之亦然)。这应该可以使用node-http-proxy 之类的东西,但是我很难让它正常运行。希望我可以对其进行微调,使其达到某个点,或者我可以轻弹一个开关,它会开始平衡用户到第二个站点。
基本上,我只是希望指出正确的方向。代码会很好,但不是必需的。解决方案甚至不必在节点中。
谢谢!
[1] 我也尝试了 nodejitsu 很长一段时间,只是没有发现它可以用于生产。
编辑:我应该只使用一个简单的循环,如此处所述吗?如果我想偏爱其中一个怎么办?