Sat*_*sam 5 websocket spring-boot spring-websocket spring-session
我有一个用于 Web 套接字的 Spring boot 应用程序。我没有使用 Stomp Web 套接字。有没有办法可以在微服务的多个实例之间共享 Web 套接字会话。
有没有办法在 Redis 或 cassandra 中保存 websocket 会话?
我的用例是,我的微服务的多个实例正在运行,它正在侦听 kafka 队列,因此当收到消息时,我需要使用 Web 套接字会话将其发送到客户端。我将会话保存在将微服务作为 MAP。我的问题是我的任何一个微服务正在获取消息,如果该微服务的会话不可用,则消息不会发送到客户端。
如果我能够将 websocket 会话保存在 REDIS 或 Cassandra 中,我就可以查询会话并将其发送到客户端。
我无法按照要求使用 Stomp Web 套接字,它必须是普通的 Web 套接字。
你不能。您必须实现从接收 kafka 消息的任何地方到您的微服务的某种路由。一种简单的方法是将给定客户端的服务实例的 IP 存储在任何数据存储(mongo、redis 等)中。这样,当您从 kafka 收到消息时,您知道它是给谁的,您可以查找哪台机器具有该客户端的 websocket 会话。然后,您调用该 IP 上的某个 http 端点(您实现该端点来中继其正在处理的会话的消息)。
| 归档时间: |
|
| 查看次数: |
1777 次 |
| 最近记录: |