负载均衡下的Spring Websocket回退处理

4
我们正试图使用基于STOMP的spring-websocket,并使用SockJS作为备选方案。我们的解决方案基于这个指南: https://spring.io/guides/gs/messaging-stomp-websocket/
环境中运行着多个Tomcat实例,没有启用sticky session。
我们遇到的问题是,由于xhr请求在原本不存在的会话上结束,它无法使用websocket的fallback选项,导致它会尝试重新连接websocket并且进入循环。
有没有解决这个问题的首选方式?
我们曾希望spring-session可以解决这个问题,但在这种情况下似乎并没有帮助。
1个回答

1

您的答案可以是以下之一:
1)REST服务
2)粘性会话
3)会话复制


我们尝试了使用Spring-Session的第三个选项,但是失败了。 - Johan Frick
@cewan,这是一个完全不同的解决方案,但可以看一下 Atmosphere,它可以解决这个问题 https://github.com/Atmosphere/atmosphere。您只需要选择适当的云扩展即可使其正常工作 https://github.com/Atmosphere/atmosphere-extensions/。 - jfarcand
2
似乎我们必须使用粘性会话,因为Spring Session尚不支持SockJS回退:https://jira.spring.io/browse/SPR-12936 - Johan Frick
我们是另外的5%。有很多推送等等。 - Johan Frick
你也可以保护 REST 服务。 - Germann Arlington

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接