錯誤詳情:
1 2019-08-11 17:02:16.528 INFO 46912 --- [ main] c.s.b.r.p.RabbitExchangeQueueProvisioner : declaring queue for inbound: springCloudBus.anonymous.206FwSK7QlGAyfjRQ4gUKw, bound to: springCloudBus 2 2019-08-11 17:02:21.534 WARN 46912 --- [ main] o.s.amqp.rabbit.core.RabbitAdmin : Failed to declare exchange: Exchange [name=springCloudBus, type=topic, durable=true, autoDelete=false, internal=false, arguments={}], continuing... org.springframework.amqp.AmqpTimeoutException: java.util.concurrent.TimeoutException 3 2019-08-11 17:02:21.536 ERROR 46912 --- [127.0.0.1:15672] c.r.c.impl.ForgivingExceptionHandler : An unexpected connection driver error occured 4 5 java.net.SocketException: Socket Closed 6 at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.8.0_131] 7 at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[na:1.8.0_131] 8 at java.net.SocketInputStream.read(SocketInputStream.java:171) ~[na:1.8.0_131] 9 at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[na:1.8.0_131] 10 at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[na:1.8.0_131] 11 at java.io.BufferedInputStream.read(BufferedInputStream.java:265) ~[na:1.8.0_131] 12 at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:288) ~[na:1.8.0_131] 13 at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91) ~[amqp-client-4.0.2.jar:4.0.2] 14 at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:164) ~[amqp-client-4.0.2.jar:4.0.2] 15 at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:571) ~[amqp-client-4.0.2.jar:4.0.2] 16 at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131] 17 18 2019-08-11 17:02:26.538 WARN 46912 --- [ main] o.s.amqp.rabbit.core.RabbitAdmin : Failed to declare queue: Queue [name=springCloudBus.anonymous.206FwSK7QlGAyfjRQ4gUKw, durable=false, autoDelete=true, exclusive=true, arguments={}], continuing... org.springframework.amqp.AmqpTimeoutException: java.util.concurrent.TimeoutException 19 2019-08-11 17:02:26.538 ERROR 46912 --- [127.0.0.1:15672] c.r.c.impl.ForgivingExceptionHandler : An unexpected connection driver error occured 20 21 java.net.SocketException: Socket Closed 22 at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.8.0_131] 23 at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[na:1.8.0_131] 24 at java.net.SocketInputStream.read(SocketInputStream.java:171) ~[na:1.8.0_131] 25 at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[na:1.8.0_131] 26 at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[na:1.8.0_131] 27 at java.io.BufferedInputStream.read(BufferedInputStream.java:265) ~[na:1.8.0_131] 28 at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:288) ~[na:1.8.0_131] 29 at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91) ~[amqp-client-4.0.2.jar:4.0.2] 30 at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:164) ~[amqp-client-4.0.2.jar:4.0.2] 31 at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:571) ~[amqp-client-4.0.2.jar:4.0.2] 32 at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131] 33 2019-08-11 17:02:31.546 WARN 46912 --- [ main] o.s.amqp.rabbit.core.RabbitAdmin : Failed to declare binding: Binding [destination=springCloudBus.anonymous.206FwSK7QlGAyfjRQ4gUKw, exchange=springCloudBus, routingKey=#], continuing... org.springframework.amqp.AmqpTimeoutException: java.util.concurrent.TimeoutException 34 2019-08-11 17:02:36.577 ERROR 46912 --- [127.0.0.1:15672] c.r.c.impl.ForgivingExceptionHandler : An unexpected connection driver error occured
其中,錯誤摘要如下:
- 無法聲明exchange: Failed to declare exchange: Exchange [name=springCloudBus...
- 無法連接queue: Failed to declare queue: Queue
- 無法綁定: Failed to declare binding: Binding [destination=springCloudBus
錯誤原因:
在搭建完Rabbit MQ 時,登錄URL為localhost:15672,注意,這個端口控制台訪問的端口,
但是在Spring Cloud 集成Rabbit MQ, 此時場景是,應用訪問Rabbit MQ,那么此時依舊使用15672,這個控制台登陸端口的話,就出現上述問題
總結就是,15672只是控制台訪問的端口,5672才是應用訪問的正確端口。
解決方案:
根據上述分析,只要在參數配置中,將 spring.rabbitmq.port=15672 修改為 spring.rabbitmq.port=5672 ,即可解決上述問題。