spring cloud config在启动时报错,连接不上rabbitmq,报错内容如下
An unexpected connection driver error occured
java.net.SocketException: Socket Closed
at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.8.0_201]
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[na:1.8.0_201]
at java.net.SocketInputStream.read(SocketInputStream.java:171) ~[na:1.8.0_201]
at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[na:1.8.0_201]
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[na:1.8.0_201]
at java.io.BufferedInputStream.read(BufferedInputStream.java:265) ~[na:1.8.0_201]
at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:288) ~[na:1.8.0_201]
at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91) ~[amqp-client-5.9.0.jar:5.9.0]
at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:184) ~[amqp-client-5.9.0.jar:5.9.0]
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:665) ~[amqp-client-5.9.0.jar:5.9.0]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_201]
然后自己在百度上百度了很多,有的说修改virtual host权限,将virtual host Name改为 / 、给用户增加权限等等,好像都没用。配置文件里面的账号密码也都没有错误。
在查阅了很多资料之后才发现:
1、port端口号只能写5672,虽然浏览器地址是http://localhost:15672,但是在配置文件里面只能写5672
2、登录账户不能写guest,因为guest默认为rabbitmq的管理员账号,只允许在本地也就是浏览器页面登录,不允许远端登录,需要配置,但是可能会很麻烦。所以好的解决办法就是:在rabbitmq新建一个用户,然后赋予权限,用新建用户进行登录。然后问题就解决啦!亲测有效!
新建用户赋予权限如下:
添加成功之后,可以看到这样的页面
然后点击test进去
然后用你新建的账号和密码就可以啦!!!