gpt4 book ai didi

node.js - 规模 SocketIO (NowJS)

转载 作者:太空宇宙 更新时间:2023-11-03 22:39:32 24 4
gpt4 key购买 nike

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

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

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

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

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

最佳答案

我不确定你所说的 25% 和 75% 是什么,但如果你指的是 cpu/内存,你应该知道 Node 在没有事情可做时非常高效,所以这可以解释情况。

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

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

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

关于node.js - 规模 SocketIO (NowJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8463427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com