我最近遇到了一个问题。我正在尝试使用RabbitMQ和Java将数据包发送到远程服务器很长一段时间,我真的需要一些帮助。这是我的代码看起来像
ConnectionFactory factory = new ConnectionFactory();
//factory.setHost("localhost");
factory.setUsername("dev");
factory.setPassword("/*user password*/");
factory.setVirtualHost("/"); //not really sure what this means
factory.setHost("/*remote server IP*/"); //is this correct
factory.setPort(5672);
connection = factory.newConnection();
我正在使用Windows Server 2012,我已经在防火墙中添加了规则以允许UDP和&端口5672和15672上的TCP用于入站连接。这些也是传出的端口吗?我想我也必须在桌面上允许这些端口。我知道我的数据包在本地发送和工作,经过多次测试。我只是无法在没有超时的情况下使远程连接工作。我很乐意帮忙!
答案 0 :(得分:0)
我认为您创建此连接是正确的,但您是否配置了代理服务器(Rabbitmq)?
如果没有,则在开始时,代理服务器的默认用户名是guest,密码是guest。
但问题是,访客用户被禁止远程连接到代理。它只能通过本地主机连接。
请通过添加新内容来配置您的服务器:
或
要允许guest虚拟机用户从远程主机进行连接,应将loopback_users配置项设置为[]。完整的配置代码如下所示:
[{rabbit,[{loopback_users,[]}]}]。
为了更好地理解和澄清这些问题的答案,我简要解释了一下。
您也可以使用URI来创建连接:
ConnectionFactory factory = new ConnectionFactory();
factory.
setUri("amqp://userName:password@hostName:portNumber/virtualHost");
Connection conn = factory.newConnection();
我希望它能正常运作。如果您对此答案有任何疑问,请允许我发表评论。