我正在实现一个基于Java Spring,Websocket,Redis的通知系统(使用Redis pubsub)。使用Jedis库与Redis一起工作。我按照本指南实现了pubsub模型 - check here
但我只是担心这个设计的几个方面。我需要连接到系统的每个用户订阅几个频道(每个用户的频道可能不同)并收听消息。自从Jedis' .subscribe()函数是一个阻塞函数(等待和观察消息的种类)我们需要为每个用户/会话运行一个新线程。
如果我们有15k连接用户,我们将运行15k个线程。这是一个好习惯吗?我相信它不是,那么如果.subscribe()函数阻塞,那么如何为这么多连接用户实现聊天/通知系统呢?因此需要为每个用户提供一个新线程?
< / LI>我们有Redis群集设置,3个节点共享16384个插槽。 Redis可以处理15k连接吗?
P.S:我正在使用Redis,因为我运行了多个应用程序服务器,所以我不能仅仅使用Spring websockets来推送消息。 Redis充当所有应用服务器之间的公共通道,以便连接到每个应用服务器的每个客户端都会收到发送的消息。