SpringBoot在Redis集群发布订阅下,如何实现WebSocket长尾词解决方案?

2026-04-19 18:371阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计830个文字,预计阅读时间需要4分钟。

SpringBoot在Redis集群发布订阅下,如何实现WebSocket长尾词解决方案?

一、背景+单机节点下,WebSocket连接成功后,可以直接发送消息。而多节点下,连接时通过nginx代理到不同节点。假设一用户连接了node1的socket服务。当触发消息发送的条件时,。

一、背景

单机节点下,WebSocket连接成功后,可以直接发送消息。而多节点下,连接时通过nginx会代理到不同节点。

假设一开始用户连接了node1的socket服务。触发消息发送的条件的时候也通过nginx进行代理,假如代理转到了node2节点上,那么node2节点的socket服务就发送不了消息,因为一开始用户注册的是node1节点。这就导致了消息发送失败。

为了解决这一方案,消息发送时,就需要一个中间件来记录,这样,三个节点都可以获取消息,然后在根据条件进行消息推送。

阅读全文

本文共计830个文字,预计阅读时间需要4分钟。

SpringBoot在Redis集群发布订阅下,如何实现WebSocket长尾词解决方案?

一、背景+单机节点下,WebSocket连接成功后,可以直接发送消息。而多节点下,连接时通过nginx代理到不同节点。假设一用户连接了node1的socket服务。当触发消息发送的条件时,。

一、背景

单机节点下,WebSocket连接成功后,可以直接发送消息。而多节点下,连接时通过nginx会代理到不同节点。

假设一开始用户连接了node1的socket服务。触发消息发送的条件的时候也通过nginx进行代理,假如代理转到了node2节点上,那么node2节点的socket服务就发送不了消息,因为一开始用户注册的是node1节点。这就导致了消息发送失败。

为了解决这一方案,消息发送时,就需要一个中间件来记录,这样,三个节点都可以获取消息,然后在根据条件进行消息推送。

阅读全文