Scale SocketIO(NowJS)

时间:2011-12-11 10:59:32

标签: node.js socket.io nowjs-sockets

我目前正在使用Linode来部署我的应用程序。我有2个服务器,1个数据库服务器,前面有1个Load Balancer。

我使用Redis作为数据库和NowJS来实现聊天室。使用Pub / Sub,一切正常。现在,我想使用集群来利用多核服务器。但是,在应用集群时,我遇到了奇怪的情况。有时,应用程序有效,有时它不是大约25%工作,75%不工作(我运行4个过程)。因此,我可以假设群集导致nowJS无法正常工作。现在,我必须做出决定

1.切换到SocketIO并使用RedisStore(我仍然可以使用pub / sub和RedisStore for SocketIO?或者完全切换到RedisStore)

2.忘记群集并在需要时添加更多服务器(因为没有使用多个核心,是否浪费资源)

P / s:我很抱歉我的英语不好,我不是本地人。

1 个答案:

答案 0 :(得分:0)

我不确定你说的是25%和75%,但是如果你指的是cpu / memory你应该知道Node在没有东西要做的时候效率非常高,所以这可以解释情况。

此外,使用多个核心的唯一方法是生成更多进程(因此使用群集)。

您正在使用RedisStore(因此Socket.IO可以将连接数据保留在内存中而不是单个进程=>以在一个进程外扩展)而Redis for pub / sub非常好,您可以使用这些独立的Socket.IO也是(NowJS是Socket.IO之上的另一个抽象层)。

所以你应该使用多个进程然后尝试水平扩展(升级你的机器)并且只在尝试垂直扩展(添加更多机器)之后。