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 登录,解决:

  1. 进入到 etc 的目录:
  2. 再进入到 rabbitmq 的目录并且在此目录下编辑一个名为 rabbitmq.config 的文件 (注意: 名字一定要是这个)
  3. 进入到文件编辑框,, 加上如下的代码;
  4. [{rabbit, [{loopback_users, []}]}].
  5. 重启。
  • 如果你使用的是自己创建的用户,那么检查你是否配置了权限

ljp 是没有配置权限,test 是配置了权限
配置权限命令:rabbitmqctl set_permissions -p / test "." "."".*"

但是我都按照上面做了,启动的时候还是报错:

我的启动错误:

java.net.SocketException: Socket Closed

虽然会报这个错,但是可以看见第二次尝试连接的时候新建连接了,所以对程序对 RabbitMQ 的操作没有影响,至少我使用的时候没有影响,可能是有影响的地方我没有用到。

解决:

修改 linux 主机的 hosts 文件

  1. vim /etc/hosts
  2. 在 127.0.0.1 那一行最后面,加上 你 linux 主机名称, 例如:[root@lf-cg-mq00 ~]# ,其中 @和空格之间就是你的主机名