RabbitMQ neue Verbindung abgelehnt aufgrund SocketException
während versuchen, um eine neue Verbindung zu rabbitmq auf einem anderen server läuft, bekam ich die folgende Fehlermeldung:
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)
Schritte :
- rabbitmq auf dem server ausgeführt wird.
- - server angegeben ist
- Standard-port angegeben ist
lsof -i tcp:5672
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Strahl.smp-3084 rabbitmq 15u IPv6 18611 0t0 TCP *:amqp (HÖREN)
rabbitmqctl list_connections
Auflistung der verbindungen ...
Gast client_server 55765 laufen
...getan.
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 :::* HÖREN 3084/beam.smp
Die RabbitMQ-version?
rabbitmq version : 3.0.4 und der server läuft auf einem centos-Maschine.
1. Funktioniert es im lokalen host? könnte ein firewall-problem. 2. Versuchen, auszuführen
Ja, es funktioniert in der localhost . Ich habe versucht, ein einfaches Erzeuger-Verbraucher-Programm. Ich habe auch ausgeführt, die rabbitmqctl list_connections Befehl-und bekam nur zwei ports in der Liste und rabbitmqctl Liste-Warteschlangen-Befehl aufgeführt sind nur zwei Warteschlangen derzeit .Ich neu gestartet, rabbitmq-server und versucht erneut zu keinem Ergebnis . Firewall ist kein problem .Ich habe verifiziert . Andere bottle-necks ich könnte fehlen ? Vielen Dank im Voraus .
Ich denke, es ist eine tcp-socket-problem!!! Haben Sie versucht, telnet your_server-5672 vom client ?
rabbitmq version : 3.0.4 und der server läuft auf einem centos-Maschine.
1. Funktioniert es im lokalen host? könnte ein firewall-problem. 2. Versuchen, auszuführen
rabbitmqctl list_connections
auf dem server, könnten Sie haben zu viele offene verbindungen.Ja, es funktioniert in der localhost . Ich habe versucht, ein einfaches Erzeuger-Verbraucher-Programm. Ich habe auch ausgeführt, die rabbitmqctl list_connections Befehl-und bekam nur zwei ports in der Liste und rabbitmqctl Liste-Warteschlangen-Befehl aufgeführt sind nur zwei Warteschlangen derzeit .Ich neu gestartet, rabbitmq-server und versucht erneut zu keinem Ergebnis . Firewall ist kein problem .Ich habe verifiziert . Andere bottle-necks ich könnte fehlen ? Vielen Dank im Voraus .
Ich denke, es ist eine tcp-socket-problem!!! Haben Sie versucht, telnet your_server-5672 vom client ?
InformationsquelleAutor rasika vijay | 2014-04-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer der möglichen Gründe ist, dass der Nutzer Sie eine Verbindung mit RabbitMQ hat keine Rechte für den Zugriff auf virtuelle hosts.
Sie können dies überprüfen, mithilfe von Management Plug-in ("Admin").
InformationsquelleAutor Denis Makarskiy
Nicht angeben, wird der Standard-port, wie Sie erwähnt haben, in Ihre Schritte.
Wenn Sie nicht erstellt haben virtuelle host auf dem eigentlichen server, wo Sie eine Verbindung herstellen möchten, erstellen Sie einen virtuellen host, und geben Sie ihm admin-Genehmigung.
Gesetzt der virtuelle host, an der Fabrik vor dem erstellen der neuen Verbindung, wie die Fabrik.setVirtualHost("VIRTUAL_HOST_NAME_ON_SERVER");
Stellen Sie sicher, dass Benutzername auf dem server, auf dem Sie sich verbinden möchten, ist Admin und habe Zugriff auf den Virtuellen Host, den Sie gerade erstellt haben.
Geben Sie Ihren Benutzernamen und das Passwort zusammen mit dem virtuellen host, während sich die Verbindung.
Starten Sie Ihre Anwendung im Debug-Modus, und prüfen Sie, ob es jetzt geht, in der Fabrik.newConection();
Diese sollten Ihre Sachen arbeiten.
Habe die gleiche Ausnahme, und es funktionierte für mich.
Wenn es immer noch nicht funktioniert, fügen Sie das code-snippet einzufügen.
InformationsquelleAutor user4338724
Können Sie überprüfen, ob die SSL - /TLS-Unterstützung aktiviert ist. Dann verwenden Sie den Befehl useSslProtocol :
InformationsquelleAutor pauline