[英]Connection refused when connecting to RabbitMQ via IP address instead of localhost
我正在嘗試設置 RabbitMQ 服務器(版本 3.7.4,通過 macOS 10.13.4 上的自制軟件安裝),以便我的同事可以通過內部網絡使用它。 我們正在使用官方 Java 客戶端 ( com.rabbitmq:amqp-client:5.2.0
)。 不幸的是,他們只收到一個ConnectException
消息, Connection refused
:
java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at com.rabbitmq.client.impl.SocketFrameHandlerFactory.create(SocketFrameHandlerFactory.java:60)
at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:62)
at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.init(AutorecoveringConnection.java:134)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:997)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:956)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:914)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1068)
at my.own.private.RabbitMqConnector.connect(RabbitMqConnector.java:29)
我們已經設置了另一個具有管理員權限的用戶帳戶(不是guest
)。 使用幾乎相同的 Java 代碼,我可以在本地連接(將主機設置為localhost
),但如果我使用我的 IP 地址則不行。 根據 RabbitMQ 文檔,RabbitMQ 服務器默認綁定到所有網絡接口(否則我會說這是地址綁定的問題)。 我禁用了我的防火牆,所以這應該不是問題。
這是相應的代碼:
final ConnectionFactory connectionFactory = new ConnectionFactory();
connectionFactory.setUsername("username");
connectionFactory.setPassword("password");
connectionFactory.setHost("10.10.33.12");
connectionFactory.setPort(5672);
connectionFactory.setVirtualHost("/");
try (final Connection connection = connectionFactory.newConnection()) {
// doo stuff with the connection
}
我終於找到了實際問題,它與 Java 或我如何配置ConnectionFactory
無關。 如何配置自制軟件的RabbitMQ包確實是一個問題。 在rabbitmq-env.conf
文件中,有以下設置
NODE_IP_ADDRESS=127.0.0.1
此設置導致 RabbitMQ 僅在 127.0.0.1 上偵聽傳入連接。 刪除設置並重新啟動服務后,我也可以從其他機器連接。
謝謝大家的幫助!
問題不在於您的代碼。 我建議您檢查以下內容:
其中之一應該是原因,希望它有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.