SpringBoot+RabbitMQ启动出现报错问题总结org.springframework.amqp.AmqpConnectException: java.net.ConnectException和 java.net.SocketException: Socket Closed
环境:
RabbitMQ 是安装在虚拟机中 Centos7
版本:
RabbitMQ 3.5.7
SpringBoot 2.1.5
检查:
-
先检查端口,15672 是插件的端口,在 SpringBoot 的配置文件中,应该使用 5672
-
登录用户,如果你使用的是 guest 默认的用户,那么默认情况下只能在 localhost 登录,解决:
- 进入到 etc 的目录:
- 再进入到 rabbitmq 的目录并且在此目录下编辑一个名为 rabbitmq.config 的文件 (注意: 名字一定要是这个)
- 进入到文件编辑框,, 加上如下的代码;
- [{rabbit, [{loopback_users, []}]}].
- 重启。
-
如果你使用的是自己创建的用户,那么检查你是否配置了权限
ljp 是没有配置权限,test 是配置了权限
配置权限命令:rabbitmqctl set_permissions -p / test "." "."".*"
但是我都按照上面做了,启动的时候还是报错:
我的启动错误:
java.net.SocketException: Socket Closed
虽然会报这个错,但是可以看见第二次尝试连接的时候新建连接了,所以对程序对 RabbitMQ 的操作没有影响,至少我使用的时候没有影响,可能是有影响的地方我没有用到。
解决:
修改 linux 主机的 hosts 文件
- vim /etc/hosts
- 在 127.0.0.1 那一行最后面,加上 你 linux 主机名称, 例如:[root@lf-cg-mq00 ~]# ,其中 @和空格之间就是你的主机名