我正在浏览 Spring 4 websocket + stomp + rabbitmq(RabbitMQ-Web-Stomp 插件)架构,我有一个关于集群的问题。根据我的理解,Spring MVC 充当 STOMP 请求的网关。如果我们使用 spring web socket 配置集群应用程序实例会造成任何困惑吗?例如,它会打开多个监听器,在这种情况下,该架构将如何表现?
最佳答案
在这种情况下,您需要使用负载平衡和消息代理。我使用 HAProxy 对运行在 4 个 tomcat 服务器上的 4 个 Spring MVC 实例(websocket)进行负载平衡。还将rabbit mq 配置为代理。从客户端代码连接到单个 HAProxy url。
如果您不使用消息代理,那么 websocket 客户端订阅将在应用程序/网络服务器 (tomcat) 的 JVM 中维护,如果一个实例出现故障,所有订阅都将丢失。
关于Spring 4 websocket + stomp + rabbitmq 和集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35424612/