簡體   English   中英

RabbitMQ:無法連接到遠程計算機(RPC)

[英]RabbitMQ : Cannot connect to distant machine (RPC)

我想使用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."

如何解決這個問題呢?

能否請您放置日志文件的內容。

我認為您應該配置您的登錄名和密碼:

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");

默認情況下,您可以使用guest作為登錄名和密碼

如果這不起作用,則應測試客戶端是否可以通過端口5672連接到服務器

 telnet 10.3.9.73 5672

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM