You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring WS Stomp从SimpleBroker迁移至RabbitMQ StompBrokerRelay遇连接异常

排查RabbitMQ与StompBrokerRelay连接异常的实操步骤

1. 核查RabbitMQ Stomp插件的端口状态

  • 默认Stomp插件监听61613端口,Windows环境下执行命令确认端口是否正常监听:
    netstat -ano | findstr :61613
    
  • 若端口未被监听,重新启用Stomp插件并重启服务:
    rabbitmq-plugins enable rabbitmq_stomp
    rabbitmq-server restart
    

2. 补全StompBrokerRelay的认证配置

Spring 6.x版本的StompBrokerRelay默认要求RabbitMQ认证,需在配置中明确指定正确的登录信息(默认RabbitMQ用户为guest/guest,仅允许本地访问):

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        config.enableStompBrokerRelay("/topic", "/queue")
            .setRelayHost("localhost")
            .setRelayPort(61613)
            .setClientLogin("guest")
            .setClientPasscode("guest")
            .setSystemLogin("guest")
            .setSystemPasscode("guest");
    }
}
  • 若需远程连接RabbitMQ,需修改guest用户的访问限制,或创建拥有对应虚拟主机权限的新用户。

3. 验证RabbitMQ虚拟主机权限

  • StompBrokerRelay默认连接/虚拟主机,登录RabbitMQ管理界面,进入Admin->Virtual Hosts,确认该虚拟主机存在且指定用户拥有读写权限。

4. 排查Windows防火墙拦截

  • 临时关闭Windows防火墙测试连接,或添加入站/出站规则,允许61613端口的TCP通信。

5. 确认版本兼容性

  • Spring 6.0.9需搭配RabbitMQ 3.11及以上版本,避免因版本不兼容导致的连接异常。

6. 开启详细日志定位根因

在application.properties中添加日志配置,抓取连接失败的具体堆栈信息:

logging.level.org.springframework.messaging.simp.stomp=DEBUG
logging.level.org.springframework.web.socket=DEBUG
logging.level.com.rabbitmq=DEBUG

内容的提问来源于stack exchange,提问作者Tobia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 13:52:36