问题:
在使用
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:
- vim的几个快捷键:在命令模式下[yy复制一行, dd剪切一行,p粘贴]
- 文章中涉及到的系统是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文件对地址的映射就行了。
修改了配置文件后,使用
source /etc/profile
使配置文件失效即可,不用重启。