Java 由于SocketException,RabbitMQ新连接被拒绝
在尝试创建到在不同服务器上运行的rabbitmq的新连接时,我遇到以下错误:Java 由于SocketException,RabbitMQ新连接被拒绝,java,connection,rabbitmq,amqp,Java,Connection,Rabbitmq,Amqp,在尝试创建到在不同服务器上运行的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(AMQChan
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正在服务器上运行李>
- 已指定服务器
- 指定了默认端口
tcp 0 0:::5672::*LISTEN 3084/beam.smp一个可能的原因是您连接到RabbitMQ的用户无权访问虚拟主机 您可以使用管理插件(管理选项卡)检查此项。
- 不要像您在步骤中提到的那样指定默认端口
- 如果您尚未在您尝试连接的实际服务器上创建虚拟主机,请创建虚拟主机并授予其管理员权限
- 在创建新连接之前在工厂上设置虚拟主机,如factory.setVirtualHost(“虚拟主机名在服务器上”)
- 确保您尝试连接的服务器上的用户名为Admin,并且可以访问您刚刚创建的虚拟主机
- 获取连接时,指定用户名和密码以及虚拟主机
- 在调试模式下启动应用程序,并检查它现在是否通过,factory.newconconnect()
如果仍然无法使用,请粘贴代码片段。您可以检查是否启用了SSL/TLS支持。然后使用说明UseSLProtocol:
ConnectionFactory factory = new ConnectionFactory();
factory.useSslProtocol();
检查主机和端口值 在application.properties中
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
请参阅RabbitMQ站点在端口15672上运行,而在代码中使用amqp协议。哪个RabbitMQ版本?RabbitMQ版本:3.0.4,服务器在centos计算机上运行。1。它在本地主机中工作吗?可能是防火墙问题。2.尝试在服务器上执行
rabbitmqctl list\u connections
,您可能有太多打开的连接。是的,它在localhost中工作。我尝试了一个简单的生产者-消费者程序。我还执行了rabbitmqctl list_connections命令,在列表中只获得了两个端口,而rabbitmqctl list queues命令当前只列出了两个队列。我重新启动了rabbitmq服务器并重新尝试,但没有结果。防火墙不是问题。我已经验证过了。还有我可能遗漏的瓶颈吗?提前谢谢。我想这是tcp套接字问题!您是否尝试从客户端远程登录您的_服务器5672?