规模SocketIO(NowJS)

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

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

1.切换到SocketIO并使用RedisStore(对于SocketIO,我还可以使用pub / sub和RedisStore?还是完全切换到RedisStore)

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

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

我不确定你说的是25%还是75%,但是如果你指的是cpu /内存,你应该知道Node没有什么东西要做的时候效率很高,这样可以解释一下情况。

另外,使用多核的唯一方法是产生更多的进程(从而使用集群)。

事实上,你使用RedisStore(所以Socket.IO可以保持连接数据在内存中,而不是一个进程=>扩展到一个进程外)和Redis的pub / sub是优秀的,你可以使用这些独立的Socket.IO也(NowJS是Socket.IO之上的另一个抽象层)。

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