【问题标题】:rabbitMQ Connection timed outrabbitMQ 连接超时
【发布时间】:2016-03-23 08:36:12
【问题描述】:

我在 vm 上运行 rabbitMQ 服务器。 我正在关注rabbitMQ java教程。 它在 vm 上本地运行良好,但尝试从主机发送时出现异常

Exception in thread "main" java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.rabbitmq.client.impl.FrameHandlerFactory.create(FrameHandlerFactory.java:32)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:714)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:760)
at Send.main(Send.java:16)

这是我正在使用的发送代码:

import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import java.util.concurrent.TimeoutException;
import com.rabbitmq.client.Channel;

public class Send {
    private final static String QUEUE_NAME = "hello";

    public static void main(String[] args) throws java.io.IOException, TimeoutException {

            ConnectionFactory factory = new ConnectionFactory();
            factory.setHost("192.168.198.100");
            factory.setPort(5672);
            Connection connection = factory.newConnection();
            Channel channel = connection.createChannel();

            channel.queueDeclare(QUEUE_NAME, false, false, false, null);
            String message = "Hello World from Windows!";
            channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
            System.out.println(" [x] Sent '" + message + "'");

            channel.close();
            connection.close();

        }
    }

我可以在 192.168.198.100 ping 服务器,但无法访问管理 UI 192.168.198.100:15672/

那么谁能帮我弄清楚这个问题出了什么问题? 提前致谢。

【问题讨论】:

    标签: java rabbitmq virtual-machine


    【解决方案1】:

    1.

    您正在使用guest guest 作为凭据,并且不允许远程IP。

    请阅读:Can't access RabbitMQ web management interface after fresh install 那么你必须添加这个:

    factory.setPassword("test");
    factory.setUsername("test");
    

    2.

    您是否启用了管理 UI?如果不使用:

    rabbitmq-plugins enable rabbitmq_management
    

    3.

    检查您的防火墙配置,可能端口 5672 和 15672 已关闭。 您可以使用telnet 来测试端口:

    telnet 192.168.198.100 5672
    Trying 192.168.198.100...
    Connected to 192.168.198.100.
    Escape character is '^]'.
    

    和:

    telnet 192.168.198.100 15672
    Trying 192.168.198.100...
    Connected to 192.168.198.100.
    Escape character is '^]'.
    

    【讨论】:

    • 谢谢其实服务器的防火墙端口被关闭了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2016-07-27
    • 2022-01-21
    • 2018-07-07
    • 2011-07-22
    相关资源
    最近更新 更多