2

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

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

1.切换到SocketIO并使用RedisStore(我仍然可以将pub/sub与RedisStore一起用于SocketIO吗?或者完全切换到RedisStore)

2.忘记集群,如果需要添加更多服务器(由于没有使用多核,是否浪费资源)

P/s:对不起,我的英语不好,我不是本地人。

4

1 回答 1

0

我不确定你在说什么关于 25% 和 75%,但是如果你指的是 cpu / memory,你应该知道 Node 在它没有事情要做的时候非常高效,这样就可以解释这种情况。

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

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

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

于 2011-12-11T11:05:56.853 回答