0

** *大家好

我有两台机器。一台是真实的,另一台是由 Vmware Workstation 安装的。它们通过 NAT 连接

真机(主机)设置为:IP:192.168.241.1 子网掩码:255.255.255.0 网关IP:192.168.241.2

并且虚拟机设置为:IP:192.168.241.11 子网掩码:255.255.255.0 网关IP:192.168.241.2

我已经在主机和虚拟机中安装了rabbitmq。

我在我的主机上运行这段代码:

ConnectionFactory factorySTC = new ConnectionFactory();
factorySTC.setHost("localhost");
factorySTC.setPort(5672);
Connection connectionSTC = factorySTC.newConnection();
Channel channelSTC = connectionSTC.createChannel();
channelSTC.queueDeclare("queue", true, false, false, null);
String message="helloworld";       
channelSTC.basicPublish("","queue",
MessageProperties.PERSISTENT_TEXT_PLAIN,message.getBytes());

我的意思是,我想发送“地狱世界”到队列“队列”

我在我的主机上运行这段代码(上面的 ip 设置为 192.168.241.11):

ConnectionFactory factorySTC = new ConnectionFactory();
factorySTC.setHost("192.168.241.1");
factorySTC.setPort(5672);
Connection connectionSTC = factorySTC.newConnection();
Channel channelSTC = connectionSTC.createChannel();
channelSTC.queueDeclare("queue", true, false, false, null);
QueueingConsumer cosumerSTC=new QueueingConsumer(channelSTC);
QueueingConsumer.Delivery delivery = cosumerSTC.nextDelivery();
String message = new String(delivery.getBody());

但它不起作用。它失败了,并且显示“连接超时......”

那么,如何解决这个问题?我的意思是,我想从安装在与我的电脑在同一个局域网中的机器上的 rabbitmq 队列中获取消息......

提前非常非常非常感谢...

问候...

4

1 回答 1

0

您不需要在第二台机器上安装 rabbitmq 服务器。关键是您有一台服务器,并且每台其他机器都发布到队列/交换并从一台服务器上的队列中读取。其次,如果您遇到连接超时,那么您有网络问题,很可能是防火墙问题。

于 2013-08-22T13:21:39.840 回答