SpringBoot连接RabbitMQ时一直显示Socket Closed或者An unexpected connection driver error occured,但是能正常访问web管理台

问题:

在使用SpringBoot连接虚拟机或者远程主机的RabbitMQ时,出现了一直报错超时,报错 Socket Closed 或者 An unexpected connection driver error occured。

解决方案:

第一步:开启rabbitmq服务后,先用浏览器访问rabbitmq的web管理界面http://192.168.75.129:15672,如果不能访问成功,进入第二步,能成功访问但是速度很慢直接进入第四步;

第二步:查看虚拟机的防火墙,自己是不是开放了5672、15672、25672这三个rabbitmq的默认端口,如果已经开放了,直接进入第三步,未开放可以使用以下命令进行开放;

查看命令:service iptables status
开放端口:vim /etc/sysconfig/iptables
		在文件中插入:
		-A INPUT -m state --state NEW -m tcp -p tcp --dport 5672 -j ACCEPT
		-A INPUT -m state --state NEW -m tcp -p tcp --dport 15672 -j ACCEPT
		-A INPUT -m state --state NEW -m tcp -p tcp --dport 25672 -j ACCEPT

Tips:

  1. vim的几个快捷键:在命令模式下[yy复制一行, dd剪切一行,p粘贴]
  2. 文章中涉及到的系统是CentOS6.5,有些命令是跟CentOS7有区别的,比如防火墙等。

第三步:rabbitmq默认的guest账户是不能进行远程访问的,可以通过修改配置让guest账户能进行远程访问,也可以直接创建一个可以远程访问的账户;(这里我选择第二种)

创建用户:(zhangsan)
rabbitmqctl add_user zhangsan 123456
设置用户角色:
rabbitmqctl set_user_tags zhangsan administrator
设置权限:
rabbitmqctl  set_permissions -p "/" zhangsan ".*" ".*" ".*"

第四步:如果前面几步完了之后还是出现web管理台能访问,但是访问速度慢,并且SpringBoot无法连接rabbitmq的话,想想自己是不是修改过虚拟机的注解名,这时只需要在虚拟机中修改hosts文件对地址的映射就行了。
SpringBoot连接RabbitMQ时一直显示Socket Closed或者An unexpected connection driver error occured,但是能正常访问web管理台_第1张图片修改了配置文件后,使用source /etc/profile使配置文件失效即可,不用重启。

你可能感兴趣的:(Spring,rabbitmq,linux)