Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 在Spring Micro服务之间共享Websocket会话_Spring Boot_Websocket_Spring Websocket_Spring Session - Fatal编程技术网

Spring boot 在Spring Micro服务之间共享Websocket会话

Spring boot 在Spring Micro服务之间共享Websocket会话,spring-boot,websocket,spring-websocket,spring-session,Spring Boot,Websocket,Spring Websocket,Spring Session,我有一个用于Web套接字的Spring启动应用程序。我没有使用Stomp Web套接字。 有没有一种方法可以跨多个微服务实例共享web套接字会话 有没有办法在Redis或cassandra中保存websocket会话 我的用例是,我的micro服务有多个实例正在运行,它正在侦听kafka队列,因此当收到消息时,我需要使用web套接字会话将其发送到客户端。我将会话保存在micro服务中作为映射。我的问题是,我的任何一个微服务都会收到消息,如果该微服务的会话不可用,则消息不会发送到客户端 如果我能够

我有一个用于Web套接字的Spring启动应用程序。我没有使用Stomp Web套接字。 有没有一种方法可以跨多个微服务实例共享web套接字会话

有没有办法在Redis或cassandra中保存websocket会话

我的用例是,我的micro服务有多个实例正在运行,它正在侦听kafka队列,因此当收到消息时,我需要使用web套接字会话将其发送到客户端。我将会话保存在micro服务中作为映射。我的问题是,我的任何一个微服务都会收到消息,如果该微服务的会话不可用,则消息不会发送到客户端

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


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

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

您是否能够实现它。你有没有类似的例子。