gpt4 book ai didi

spring-boot - Spring微服务之间共享Websocket session

转载 作者:行者123 更新时间:2023-12-01 12:24:35 24 4
gpt4 key购买 nike

我有一个用于 Web 套接字的 Spring Boot 应用程序。我没有使用 Stomp Web 套接字。
有没有办法在多个微服务实例之间共享 Web 套接字 session 。

有没有办法可以在 Redis 或 cassandra 中保存 websocket session ?

我的用例是,我有多个微服务实例正在运行,它正在监听 kafka 队列,因此当收到消息时,我需要使用 Web 套接字 session 将其发送到客户端。我将 session 保存在微服务作为 MAP。我的问题是我的任何一个微服务都在获取消息,如果该微服务无法使用 session ,则消息不会发送到客户端。

如果我能够在 REDIS 或 Cassandra 中保存 websocket session ,我可以查询 session 并将其发送到客户端。

我不能按照要求使用 Stomp web socket,它必须是普通的 websocket。

最佳答案

你不能。您必须从接收 kafka 消息的任何内容到您的微服务实现某种路由。
一种简单的方法是将给定客户端的服务实例的 IP 存储在任何数据存储(mongo、redis 等)中。这样,当您从 kafka 收到消息时,您知道它是谁的,您可以查找哪台机器具有该客户端的 websocket session 。然后,您在该 IP 上调用某个 http 端点,您实现该端点以中继正在处理的 session 的消息。

关于spring-boot - Spring微服务之间共享Websocket session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41304899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com