Spring 4 websocket + stomp + rabbitmq 和集群

标签 spring spring-mvc rabbitmq stomp spring-websocket

我正在浏览 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/

相关文章:

java - Spring Boot MongoDb 集合

java - web.xml 无法正确标记 spring ServletDispatcher

RabbitMQ:用慢速消费者限制快速生产者对抗大队列

php - 如何在供应商目录下为 php rabbitmq 创建自动加载

rabbitmq - 如何从连接自己的 channel 以外的其他 channel 恢复未确认的 AMQP 消息?

java - 为什么我可以在没有请求的情况下注入(inject)请求范围的 bean?

xml - 与元素类型 "xsi"关联的属性 "xsi:schemaLocation"的前缀 "beans"未绑定(bind)。在tomcat上运行spring时

java - Spring Security + Google OAuth2 登录 : access token is null?

java - 无法使用resttemplate使用rest api

java - 如何在 BaseCommandController.bindAndValidate 中的某处调试 NumberFormatException