rbr*_*brc 7 scalability redis node.js socket.io
我有多个使用redisstore水平扩展的socket.io服务器.我已经有效地设置了房间,并且成功地能够通过服务器等广播到房间.现在我正在尝试建立一个状态页面,我正在努力弄清楚如何简单地计算连接的用户数量所有服务器.
io.sockets.clients('room')和io.sockets.sockets只会告诉你那台服务器上连接的客户端数量,而不是所有连接到同一RedisStore的服务器.
建议?
谢谢.
我通过让每个服务器定期在 redis 中设置用户计数来解决这个问题,并设置包含其自己的 pid 的过期时间:
每做setex userCount:<pid> <interval+10> <count>
然后状态服务器可以查询每个键,然后获取每个键的值:
对于每个keys userCount*做总计+=get <key>
因此,如果服务器崩溃或关闭,则其计数将在间隔+10后从redis中删除
对丑陋的伪代码感到抱歉。:)
| 归档时间: |
|
| 查看次数: |
1620 次 |
| 最近记录: |