我目前正在使用Linode部署我的应用程序。我有2台服务器,1台数据库服务器,前面有1个负载均衡器。
我正在使用Redis作为数据库和NowJS来实现聊天室。使用Pub/Sub一切工作正常。现在,我想使用集群来利用多核服务器的优势。然而,在应用集群时,我遇到了奇怪的情况。有时,应用程序工作,有时不工作,大约25%工作,75%不工作(我运行了4个进程)。因此,我可以假设集群导致nowJS不能正常工作。现在,我必须做出决定
1.切换到SocketIO并使用RedisStore (对于SocketIO,我仍然可以使用发布/订阅和RedisStore吗?或完全切换到RedisStore)
2.忘记集群,在需要的时候增加更多的服务器(因为多核没有被利用,这是不是浪费资源)
我为我糟糕的英语感到抱歉,我不是本地人。
发布于 2011-12-11 19:05:57
我不确定你说的25%和75%是什么意思,但如果你指的是cpu /内存,你应该知道Node在没有事情要做的情况下是非常高效的,所以这可以解释这种情况。
此外,使用多核的唯一方法是产生更多的进程(因此使用集群)。
你正在使用RedisStore (这样Socket.IO可以将连接数据保存在内存中,而不是单个进程=>来扩展一个进程)和Redis for pub/sub是很好的,你也可以将这些独立的Socket.IO使用(NowJS是Socket.IO之上的另一个抽象层)。
因此,您应该使用多个进程,然后尝试水平扩展(升级您的计算机),并仅在尝试垂直扩展之后(添加更多计算机)。
https://stackoverflow.com/questions/8463427
复制相似问题