【发布时间】:2014-05-15 03:43:47
【问题描述】:
在尝试创建与在不同服务器上运行的 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)
采取的步骤:
- rabbitmq 正在服务器上运行。
- 指定服务器
- 指定默认端口
lsof -i tcp:5672
命令 PID 用户 FD 类型设备大小/关闭节点名称
beam.smp 3084 rabbitmq 15u IPv6 18611 0t0 TCP *:amqp (LISTEN)
rabbitmqctl list_connections
列出连接... 来宾 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
【问题讨论】:
-
哪个 RabbitMQ 版本?
-
rabbitmq 版本:3.0.4 并且服务器在 centos 机器上运行。
-
1.它在本地主机中工作吗?可能是防火墙问题。 2.尝试在服务器上执行
rabbitmqctl list_connections,可能打开的连接太多。 -
是的,它适用于 localhost 。我尝试了一个简单的生产者-消费者程序。我还执行了rabbitmqctl list_connections 命令并在列表中只得到了两个端口,而rabbitmqctl list-queues 命令目前只列出了两个队列。我重新启动了rabbitmq 服务器并重新尝试,但没有结果。防火墙不是问题。我已验证。我可能遗漏的任何其他瓶颈?提前致谢。
-
我认为是tcp socket问题!您是否尝试从客户端 telnet your_server 5672 ?
标签: java connection rabbitmq amqp