Spring 4 websocket + stomp + rabbitmq 和集群
Posted
技术标签:
【中文标题】Spring 4 websocket + stomp + rabbitmq 和集群【英文标题】:Spring 4 websocket + stomp + rabbitmq and clustering 【发布时间】:2016-02-16 05:39:01 【问题描述】:我正在经历 Spring 4 websocket + stomp + rabbitmq(RabbitMQ-Web-Stomp 插件) 架构,我有一个关于集群的问题。根据我的理解,Spring MVC 充当 STOMP 请求的网关。如果我们使用 Spring Web 套接字配置对应用程序实例进行集群,会不会造成任何混乱?例如,它会打开多个侦听器吗?在这种情况下,该架构将如何表现?
【问题讨论】:
【参考方案1】:在这种情况下,您需要使用负载平衡和消息代理。我使用 HAProxy 来负载平衡 4 个运行在 4 个 tomcat 服务器上的 Spring MVC 实例(websocket)。还将rabbit mq配置为代理。从客户端代码连接到单个 HAProxy url。
如果您不使用消息代理,那么 websocket 客户端订阅将保留在应用程序/网络服务器 (tomcat) 的 JVM 中,如果一个实例出现故障,则该实例上的所有订阅都将丢失。
【讨论】:
以上是关于Spring 4 websocket + stomp + rabbitmq 和集群的主要内容,如果未能解决你的问题,请参考以下文章
Spring 4 - websocket 消息传递 stomp 处理程序
JavaScript 客户端无法连接到 Spring 4 WebSocket