多台服务器怎么共享websocket
【需求】
实现1对1的聊天系统。
【现状】
客户端发起websocket请求,tomcat后端通过Map<String key, List websockets>保存websocket连接。
p.s. String key代表聊天组,List websockets代表聊天成员
客户端发送信息时,服务器在同一聊天组内把信息广播给其他成员。
至今在1台tomcat上面运行良好。
【问题】
为了提高可用性,需要部署2台tomcat。
同一聊天组的user1的websocket保存在tomcat1中,user2的websocket保存在tomcat2中。
这样的话,上面描述 的方案将无法正常通讯。
请问有什么解决方案???
实现1对1的聊天系统。
【现状】
客户端发起websocket请求,tomcat后端通过Map<String key, List websockets>保存websocket连接。
p.s. String key代表聊天组,List websockets代表聊天成员
客户端发送信息时,服务器在同一聊天组内把信息广播给其他成员。
至今在1台tomcat上面运行良好。
【问题】
为了提高可用性,需要部署2台tomcat。
同一聊天组的user1的websocket保存在tomcat1中,user2的websocket保存在tomcat2中。
这样的话,上面描述 的方案将无法正常通讯。
请问有什么解决方案???
...全文
相关推荐
atlants-websocket_服务器_物联网_webscoke_websocket_物联网服务器.zip
通过多台服务器共享负载,即使单台服务器出现问题,也不会影响整个系统的运行。此外,可以利用心跳检测机制来监测客户端和服务器之间的连接状态,及时发现并恢复断开的连接。
redis订阅发布实现websocket集群.zip
**集群支持**: WebSocket集群的关键在于如何在多台服务器之间共享状态。通过Redis的发布/订阅机制,无论客户端连接到哪台服务器,都能接收到最新的消息,实现了状态的共享和消息的广播。
springboot+websocket分布式实现
当服务器接收到新的消息时,将其发布到特定的频道,而所有订阅该频道的实例都会收到此消息,从而实现消息的广播。在分布式环境中,SpringBoot应用可能有多个实例运行在同一台或多台服务器上。
分布式websocket解决方案
分布式WebSocket解决方案的目标是实现WebSocket连接在多台服务器间的无缝迁移,保证在服务器集群中,用户的WebSocket连接不会因为服务器故障或负载均衡而中断。
js写的websocket引擎
- **负载均衡**:在高并发场景下,可能需要多台服务器共享连接,这就需要负载均衡策略。- **故障恢复**:当服务器故障或网络问题时,客户端应能自动重连。


高性能WEB开发
