rabbitMQ 连接超时
rabbitMQ Connection timed out
我在 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();
}
}
我可以 ping 服务器 192.168.198.100 但我无法访问管理 UI
192.168.198.100:15672/
所以谁能帮我弄清楚这个问题出了什么问题?
提前致谢。
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 '^]'.
我在 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();
}
}
我可以 ping 服务器 192.168.198.100 但我无法访问管理 UI 192.168.198.100:15672/
所以谁能帮我弄清楚这个问题出了什么问题? 提前致谢。
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 '^]'.