gpt4 book ai didi

node.js - 如何扩展 Node.js WebSocket Redis 服务器?

转载 作者:IT老高 更新时间:2023-10-28 23:26:11 25 4
gpt4 key购买 nike

我正在为 Acani 编写聊天服务器,我有一些关于 Scaling node.js 的问题和 websockets with load balancer scalability .

  1. 负载均衡 Node.js 到底是什么意思?这是否意味着将有 n 个独立版本的服务器应用程序运行,每个版本都在单独的服务器上?

  2. 为了允许一个客户端向所有其他客户端广播消息,我存储了一组在服务器上打开的所有 webSocketConnections。但是,如果我有 n 个独立版本的服务器应用程序运行,每个版本都在单独的服务器上,那么我将有 n 个不同的 webSocketConnections 集?

  3. 如果对 1 和 2 的回答是肯定的,那么我如何存储一组通用的 webSocketConnections(跨所有服务器)?我认为我可以做到这一点的一种方法是使用 Redis Pub/Sub 并让每个 webSocketConnection 订阅 Redis 上的 channel 。

  4. 那么,单台 Redis 服务器不会成为瓶颈吗?然后我将如何扩展 Redis?扩展 Redis 意味着什么?这是否意味着我有 m 个独立版本的 Redis 在不同的服务器上运行?这可能吗?

  5. 我听说 Redis 无法扩展。为什么会有人这么说。这意味着什么?如果这是真的,对于发布/订阅和/或存储所有广播消息的列表是否有更好的解决方案?

注意:如果您的答案是 Acani 永远不需要扩展,即使地球上所有 70 亿人(并且还在增长)中的每一个人每秒都向地球上的其他人广播一条消息,那么请给出一个有效的解释.

最佳答案

好吧,你的问题的答案很少:

  1. Node.js 负载均衡,就是你想的那样.

  2. 你的 Node 服务器的每个服务器/进程都会有自己的连接,websockets(例如 Socket.IO)的默认存储是 MemoryStore,这意味着所有的连接都将存储在机器内存中,它需要使用 RedisStore 才能将 redis 用作连接存储。

  3. Redis PUB/SUB 是完成这项任务的好方法

  4. 你说得对,redis 目前无法扩展,运行大量连接到 redis 的进程/连接可能会使 redis 成为瓶颈。

  5. Redis 无法扩展,这是正确的,但是根据这个演示文稿,您可以看到集群开发是 redis 的重中之重,而 redis 确实有一个集群,但它还不稳定:(取自http://redis.io/download)

Where's Redis Cluster?

Redis development is currently focused on Redis 2.6 that will bring you support for Lua scripting and many other improvements. This is our current priority, however the unstable branch already contains most of the fundamental parts of Redis Cluster. After the 2.6 release we'll focus our energies on turning the current Redis Cluster alpha in a beta product that users can start to seriously test.It is hard to make forecasts since we'll release Redis Cluster as stable only when we feel it is rock solid and useful for our customers, but we hope to have a reasonable beta for summer 2012, and to ship the first stable release before the end of 2012.

在此处查看演示文稿:http://redis.io/presentation/Redis_Cluster.pdf

关于node.js - 如何扩展 Node.js WebSocket Redis 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13012394/

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