java连接ActiveMQ时出现连接超时 java.net.ConnectException: Connection timed out: connect
java连接ActiveMQ时出现连接超时
Caused by: javax.jms.JMSException: Could not connect to broker URL: tcp://192.168.1.145:61616. Reason: java.net.ConnectException: Connection timed out: connect
通常是网络防火墙限制了
(1) 确认ActiveMQ服务状态
# 在ActiveMQ服务器执行 systemctl status activemq # 或 /opt/activemq/bin/activemq status netstat -tulnp | grep 61616
预期结果:应看到 :::61616 或 0.0.0.0:61616 的监听状态

(2) 测试基础网络连通性
# 在客户端机器执行(替换为实际IP) ping 192.168.1.145 telnet 192.168.1.145 61616
若 telnet 失败:说明网络层不通
(3) 防火墙放行端口
# 在ActiveMQ服务器执行 # 麒麟服务器版 sudo firewall-cmd --add-port=61616/tcp --permanent sudo firewall-cmd --reload

其他系统
# 在ActiveMQ服务器执行 # Linux (firewalld) sudo firewall-cmd --add-port=61616/tcp --permanent sudo firewall-cmd --reload # Linux (iptables) sudo iptables -A INPUT -p tcp --dport 61616 -j ACCEPT sudo service iptables save # Windows netsh advfirewall firewall add rule name="ActiveMQ" dir=in action=allow protocol=TCP localport=61616
再次 执行 telnet 192.168.1.145 61616 若出现如下图则说明连接成功

win10安装 telnet方法:
Windows 10 默认未安装 Telnet 客户端,需手动启用:
方法 1:通过控制面板
-
打开 控制面板 > 程序 > 程序和功能。
-
点击左侧 启用或关闭 Windows 功能。 或 在搜索中搜 启用或关闭 Windows 功能
-
勾选 Telnet 客户端,点击 确定。
-
等待安装完成,重启系统(可选,不重启有时也行)。

方法 2:通过命令行(管理员权限)
dism /online /Enable-Feature /FeatureName:TelnetClient
java代码 最简单直接的连接ActiveMQ的写法,仅用于连接测试
App.java
package com.ActiveMQ; import com.ActiveMQ.ActiveMQ.JmsPoolUtil; import com.ActiveMQ.ActiveMQ.PooledProducer; import javax.jms.JMSException; /** * Hello world! */ public class App { public static void main(String[] args) { System.out.println("Hello World!"); try { ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://192.168.1.145:61616"); Connection connection = factory.createConnection(); connection.start(); System.out.println("连接成功!"); connection.close(); } catch (JMSException e) { e.printStackTrace(); } } }
pom.xml
<!-- ActiveMQ --> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.16.5</version> </dependency> <!-- ActiveMQ 自带的连接池 --> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-jms-pool</artifactId> <version>5.16.5</version> </dependency>

浙公网安备 33010602011771号