我想使用Remote程序调用使用RabbitMQ连接两台机器。 我有两台机器,我的本地机器(地址:10.3.9.73)和一台VM机器(地址:10.3.9.2)。 这些地址是可以ping的。 我使用以下代码在我的VM机器上运行客户端应用程序:
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("10.3.9.73");
factory.setPort(5672);
connection = factory.newConnection();
channel = connection.createChannel();
replyQueueName = channel.queueDeclare().getQueue();
consumer = new QueueingConsumer(channel);
channel.basicConsume(replyQueueName, true, consumer);
使用此代码的本地计算机中的服务器应用程序:
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
factory.setPort(5672);
connection = factory.newConnection();
channel = connection.createChannel();
channel.queueDeclare(RPC_QUEUE_NAME, false, false, false, null);
channel.basicQos(1);
QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume(RPC_QUEUE_NAME, false, consumer);
System.out.println(" [x] Awaiting RPC requests");
客户端应用程序的代码失败并显示此错误:
"com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile."
如何解决这个问题?
答案 0 :(得分:0)
请你把日志文件内容。
我认为你应该配置你的登录名和密码:
Sudo cp /usr/share/doc/rabbitmq-server-[rabbitmq version]/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
然后搜索
%%{loopback_users, []}
然后删除'%%',然后重启rabbitmq服务器。
然后你应该在代码中添加以下行:
factory.setUsername("guest");
factory.setPassword("guest");
默认情况下,您可以使用来宾作为登录名和密码
如果这不起作用, 您应该测试您的客户端是否可以通过端口连接到您的服务器 5672
telnet 10.3.9.73 5672