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 的监听状态

image

(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

image

其他系统

# 在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  若出现如下图则说明连接成功

image

 win10安装 telnet方法:

Windows 10 默认未安装 Telnet 客户端,需手动启用:

方法 1:通过控制面板

  1. 打开 控制面板 > 程序 > 程序和功能。

  2. 点击左侧 启用或关闭 Windows 功能。 或 在搜索中搜 启用或关闭 Windows 功能 

  3. 勾选 Telnet 客户端,点击 确定。

  4. 等待安装完成,重启系统(可选,不重启有时也行)。

    image

方法 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>

 

posted @ 2025-08-04 14:58  海乐学习  阅读(39)  评论(0)    收藏  举报