6

在使用 Node.js 和 socket.io 一段时间后,我明白如果我希望我的应用程序支持多达 100 万并发用户,我需要对其进行扩展,所以我开始使用 Redis 来处理PUB/SUB套接字之间的消息并运行大量套接字.io 服务器实例,在同一台机器和其他机器上,但我所有的 socket.io 服务器都使用同一个 Redis 服务器。

这让我想:有什么意义?我是否需要更多的 redis 服务器并在它们之间进行扩展?我的观点是,他们将永远是顶级服务器的瓶颈。

我的问题是,是否可以扩展 Redis?如果是的话,我所有连接到不同 socket.io 服务器的套接字如何能够在 Redis 服务器之间进行 PUB/SUB?

4

2 回答 2

2

我认为您正在寻找的是Redis Cluster。它在该页面上被称为“正在处理”和“希望今年夏天”。

这里有一个演示。它基本上是散列+单个主从冗余。但它还没有准备好。获取更多信息的最佳选择是访问这些产品的论坛和 IRC。

如果有人在做类似的事情,他们将在这些频道上。

于 2012-08-20T22:57:24.843 回答
0

对于更多的读者来说,使用 socket.io 和它的 redis 适配器是不可扩展的(至少现在是这样)。在后台,redis 适配器使用 pub/sub 进行广播。这是关于此的讨论:https ://github.com/redis/redis/issues/2672

需要强调的 1 件事:Redis 集群不是答案(在上面的问题中讨论或查看下面的 youtube 链接以获取更多详细信息)

我在这里找到了一种关于扩展 Redis pubsub 的有趣解决方案:https ://redislabs.com/wp-content/uploads/2018/04/Redis-Day-TLV-2018-Scaling-Redis-PubSub.pdf

观看 youtube:https ://www.youtube.com/watch?v=6G22a5Iooqk&ab_channel=RedisLabs

于 2021-07-08T15:51:15.593 回答