springboot微服务分布式场景下使用websocket,使用redis实现发布订阅通知功能

明确目标问题

单点服务中使用websocket:我们每个client客户端都是与同一个service服务器进行连接,连接的session通过map存储在内存中,发送消息时,只需要在map中查找到所有需要发送的id对应的session进行发送即可。

分布式服务中使用websocket:多个用户可能连接不同的service服务器,如果还是采用单点的方式,那么接收发送请求的服务器发送消息时,将无法发送到别的服务器上的用户。

我们要解决的问题:也就是任何服务器接收到发送请求时,要让所有服务器都知道,该请求发送消息将发给谁,以及发送的消息内容,并且查看本服务器是否有对应的接收人,有的话发送给对应的接收人。
常用的通知方式有消息队列如rocketMQ等,redis事件监听实现发布订阅等。

猜你喜欢

转载自blog.csdn.net/weixin_43073775/article/details/109816348