Pregunta RabbitMQ nueva conexión rechazada debido a SocketException


Al intentar crear una nueva conexión con rabbitmq corriendo en un servidor diferente, recibí el siguiente error:

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)

Pasos tomados :

  • rabbitmq se está ejecutando en el servidor.
  • servidor se especifica
  • se especifica el puerto predeterminado

lsof -i tcp: 5672

COMANDO PID USER FD TYPE DEVICE SIZE / OFF NODE NAME

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

rabbitmqctl list_connections

Conexiones de listado ... invitado client_server 55765 ejecutándose ...hecho.

netstat -tapnl | grep 5672

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

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

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


13
2018-04-03 11:00


origen


Respuestas:


Una de las posibles razones es que el usuario con el que se está conectando a RabbitMQ no tiene derechos para acceder a los hosts virtuales.

Puede verificar esto usando el complemento de administración (pestaña Administrador).


15
2017-08-12 11:24



  • No especifique el puerto predeterminado como ha mencionado en sus pasos.

  • Si no ha creado un host virtual en el servidor real, donde intenta conectarse, cree un host virtual y dele permiso de administrador.

  • Establezca el host virtual en la fábrica antes de crear la nueva conexión, como factory.setVirtualHost ("VIRTUAL_HOST_NAME_ON_SERVER");

  • Asegúrate de que el nombre de usuario en el servidor en el que intentas conectarte sea Administrador y tengas acceso al Host virtual que acabas de crear.

  • Especifique su nombre de usuario y contraseña junto con el host virtual, mientras obtiene la conexión.

  • Inicie su aplicación en modo de depuración y verifique si ahora pasa, factory.newConection ();

Esto debería hacer que tus cosas funcionen. Obtuve la misma excepción, y funcionó para mí.

Si aún no funciona, pegue el fragmento de código.


4
2018-02-19 01:47



Puede verificar si la compatibilidad con SSL / TLS está habilitada. Luego use la instrucción useSslProtocol:

ConnectionFactory factory = new ConnectionFactory();
factory.useSslProtocol();

0
2018-01-10 11:35