SpringBoot在Redis集群发布订阅下,如何实现WebSocket长尾词解决方案?
- 内容介绍
- 文章标签
- 相关推荐
本文共计830个文字,预计阅读时间需要4分钟。
一、背景+单机节点下,WebSocket连接成功后,可以直接发送消息。而多节点下,连接时通过nginx代理到不同节点。假设一用户连接了node1的socket服务。当触发消息发送的条件时,。
一、背景
单机节点下,WebSocket连接成功后,可以直接发送消息。而多节点下,连接时通过nginx会代理到不同节点。
假设一开始用户连接了node1的socket服务。触发消息发送的条件的时候也通过nginx进行代理,假如代理转到了node2节点上,那么node2节点的socket服务就发送不了消息,因为一开始用户注册的是node1节点。这就导致了消息发送失败。
为了解决这一方案,消息发送时,就需要一个中间件来记录,这样,三个节点都可以获取消息,然后在根据条件进行消息推送。
本文共计830个文字,预计阅读时间需要4分钟。
一、背景+单机节点下,WebSocket连接成功后,可以直接发送消息。而多节点下,连接时通过nginx代理到不同节点。假设一用户连接了node1的socket服务。当触发消息发送的条件时,。
一、背景
单机节点下,WebSocket连接成功后,可以直接发送消息。而多节点下,连接时通过nginx会代理到不同节点。
假设一开始用户连接了node1的socket服务。触发消息发送的条件的时候也通过nginx进行代理,假如代理转到了node2节点上,那么node2节点的socket服务就发送不了消息,因为一开始用户注册的是node1节点。这就导致了消息发送失败。
为了解决这一方案,消息发送时,就需要一个中间件来记录,这样,三个节点都可以获取消息,然后在根据条件进行消息推送。

