由于SocketException,RabbitMQ新连接被拒绝

ras*_*jay 17 java connection amqp rabbitmq

在尝试创建与另一台服务器上运行的rabbitmq的新连接时,我收到以下错误:

java.io.IOException
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106)
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:124)
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:406)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:516)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:533)


Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; reason: java.net.SocketException: Connection reset


at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)
at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33)
at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:343)
at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:216)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:118)



Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at java.io.DataInputStream.readUnsignedByte(Unknown Source)
at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:95)
at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:131)
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:533)
Run Code Online (Sandbox Code Playgroud)

采取的步骤:

  • rabbitmq正在服务器上运行.
  • 服务器已指定
  • 指定了默认端口

lsof -i tcp:5672

命令PID用户FD类型设备大小/关闭节点名称

beam.smp 3084 rabbitmq 15u IPv6 18611 0t0 TCP*:amqp(LISTEN)

rabbitmqctl list_connections

列出连接... guest client_server 55765正在运行...完成.

netstat -tapnl | grep 5672

tcp 0 0 0.0.0.0:15672 0.0.0.0:*LISTEN 3084/beam.smp

tcp 0 0 0.0.0.0:55672 0.0.0.0:*LISTEN 3084/beam.smp

tcp 0 0 ::: 5672 :::*LISTEN 3084/beam.smp

小智 19

可能的原因之一是您与RabbitMQ连接的用户无权访问虚拟主机.

您可以使用Management Plugin(Admin选项卡)进行检查.


use*_*724 6

  • 不要像在步骤中提到的那样指定默认端口。

  • 如果尚未在要连接的实际服务器上创建虚拟主机,请创建一个虚拟主机并赋予其管理员权限。

  • 在创建新连接之前,请在工厂上设置虚拟主机,例如factory.setVirtualHost(“ VIRTUAL_HOST_NAME_ON_SERVER”);。

  • 确保您要连接的服务器上的用户名是Admin,并且可以访问刚刚创建的虚拟主机。

  • 在建立连接时,指定您的用户名和密码以及虚拟主机。

  • 以Debug模式启动您的应用程序,并检查是否现在通过了factory.newConection();。

这应该使您的工作正常。有同样的例外,它为我工作。

如果仍然无法正常工作,请粘贴您的代码段。