Redis - 最大订阅/连接?

时间:2017-08-06 14:14:16

标签: redis jedis lettuce redisson

我正在设计一个基于Java Spring的实时通知系统&使用Redis& amp;聊天系统WebSockets(带有sockJS和STOMP)。要求是每个用户订阅一个唯一的频道(频道名称将是用户ID)。这是因为通知可以针对单个用户,聊天对话可以是1对1。我使用redis的原因是在相应的应用程序服务器(有很多)中通过WebSocket连接用户来触发事件。据我了解,当发布时恰好说" user1" - 如果我想获得" onMessage处理程序"仅为该目标用户解雇:

  1. 我是否需要为每个用户维护1个redis连接?
  2. 是否可以一次打开15k连接,同时为那些连接到系统的许多用户提供15k的唯一订阅?

1 个答案:

答案 0 :(得分:0)

由于您已使用Redisson标记了问题,我认为您已经在使用它。如果您选择的WebSocket框架是灵活的,即不限于使用STOMP的SockJS,您可以考虑netty-socketio项目。它由Redisson的作者撰写,两者之间的整合不再自然。

Netty-socketio与流行的SocketIO客户端JS库完全兼容,并且被许多公司商业化使用。

每位用户不需要一次redis连接,并且有些人的用法已经超出了您的要求。

项目的自述文件中提到了这一点。

  

2014年的客户反馈:

     

"为了对解决方案进行压力测试,我们同时运行30 000个websocket客户端,并设法达到每秒约140 000条消息的峰值,平均延迟不到1秒。" (c)Viktor Endersz - Kambi Sports Solutions