Spring Boot系列21 Spring Websocket实现websocket集群方案讨论

本文详细讨论了WebSocket集群的三种解决方案,包括直接推送、使用Redis缓存和直接利用RabbitMQ API。在分析了每个方案的优缺点后,得出方案三是最佳实践,它既克服了简单推送的不足,又避免了复杂架构的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

本文对websocket集群的方案进行讨论:

  1. 在websocket集群中,后端准确将指定的消息推送到指定的用户,前端实时接收服务推送的消息
  2. 对websocket集群的方案进行讨论,并确定最佳方案

webscoket集群方案

集群方案分析

这里写图片描述

在上个博文Spring Boot系列20 Spring Websocket实现向指定的用户发送消息中实现向指定用户发送消息的功能,但是我们将提供websocket服务的服务进行集群(如上图)则存在如下问题:

上图中,用户A通过websocket注册到服务A,服务A通过STOMP协议订阅RabbitMQ上的消息,同理用户B。如果用户A连接到服务A上,那么在位于服务B上的MQ模块即使使用SimpMessagingTemplate实例向用户A发送消息,此消息也无法到达用户A,原因是因为服务B上没有服务A的注册信息,无法准确的推送消息.只有在服务A上的MQ模块使用SimpMessagingTemplate实例向这个用户发送消息,消息才会到达用户A

针对这个问题下文我们通过3个方案解决这个问题,并详细分析每个方案的有缺点。

webSocket集群方案一

概述
不管消

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值