【问题标题】:Scaling NodeJS chat room - store connection status in Redis缩放 NodeJS 聊天室 - 在 Redis 中存储连接状态
【发布时间】:2012-10-27 03:02:42
【问题描述】:

聊天室应用在多台服务器上运行,包含两个服务:
1. 连接管理器
在加入聊天室之前,客户端首先向连接管理器请求聊天服务 url
2. 聊天服务
一个典型的基于 socket.io 的聊天实现。

我需要将每个客户端的连接状态存储在 Redis 中,例如用户连接到哪个房间,一个房间有多少用户等。因此连接管理器可以使用这些数据来做负载均衡。

我可以使用socket连接/断开事件来保持Redis当前的连接状态,但是如果NodeJS服务器出现故障,如何保证Node和Redis数据同步呢?最好的方法是什么?

【问题讨论】:

    标签: node.js redis socket.io


    【解决方案1】:

    我可以使用套接字连接/断开事件来保持当前 Redis中的连接状态,但是在NodeJS服务器故障的情况下,如何 确保 Node 和 Redis 数据同步?

    例如,您可以在 redis 中创建一个集合,其中包含对由特定服务器节点管理的键的引用。如果节点出现故障或重新启动,您可以使这些密钥无效。

    【讨论】:

      猜你喜欢
      • 2016-01-18
      • 2012-01-29
      • 2016-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-24
      • 2019-12-08
      • 1970-01-01
      相关资源
      最近更新 更多