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

SpringBoot通过FailoverTransport连接远程ActiveMQ重试失败求助

分析Spring Boot连接ActiveMQ远程Broker失败的原因

我来帮你拆解下这个问题:浏览器能正常访问ActiveMQ控制台,但Spring Boot应用连不上,日志显示连tcp:// http://199.247.18.11:61616失败,大概率是这几个问题:

  • 连接地址格式完全错误
    你日志里的地址混了两种协议:tcp://后面居然加了http://,这绝对是无效的ActiveMQ TCP连接地址!浏览器访问的是ActiveMQ的Web控制台(默认用8161端口,HTTP协议),但Spring Boot连接Broker用的是TCP协议,正确的地址应该是tcp://199.247.18.11:61616,赶紧检查你的Spring Boot配置文件(比如application.properties或application.yml)里的spring.activemq.broker-url是不是写错了,别把HTTP控制台的地址混到TCP连接里。

  • 61616端口未开放防火墙/安全组
    浏览器能访问8161端口不代表61616端口也对外开放了。Unix虚拟机的防火墙(比如firewalld、iptables)或者云服务商的安全组,可能只放行了8161端口(控制台用),但没给61616端口(Broker的TCP连接端口)开权限。
    可以先在你的笔记本上用命令测试端口是否可达:

    telnet 199.247.18.11 61616
    # 或者用nc命令
    nc -zv 199.247.18.11 61616
    

    如果连不上,就去虚拟机里开放61616端口,比如用firewalld的话:

    sudo firewall-cmd --add-port=61616/tcp --permanent
    sudo firewall-cmd --reload
    
  • ActiveMQ Broker绑定了localhost
    检查Unix虚拟机上的ActiveMQ配置文件(conf/activemq.xml),看看transportConnector的配置是不是只绑定了localhost:

    <!-- 错误的配置,只能本地连接 -->
    <transportConnector name="tcp" uri="tcp://localhost:61616"/>
    

    要改成绑定所有网卡,允许远程连接:

    <!-- 正确的配置,允许所有IP访问 -->
    <transportConnector name="tcp" uri="tcp://0.0.0.0:61616"/>
    

    修改后记得重启ActiveMQ服务。

  • 网络路由或代理问题
    虽然概率较低,但有可能浏览器走了代理能访问8161,但Spring Boot应用没走代理导致连不上61616。可以试试关闭笔记本的代理,或者给Spring Boot配置对应的代理参数,再测试连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:52:39