项目场景:
项目使用的springboot2.3.5,mq使用的是rabbitmq,版本2.7.14
问题描述:
因为项目迁移,所以在新的服务器上搭建,mq也搭好了,端口也开好了,结果启动项目报错
2021-03-18 14:23:13,576 WARN [AMQP Connection 8.135.xxx.xxx:15672] ForgivingExceptionHandler: An unexpected connection driver error occured (Exception message: Socket closed)
2021-03-18T06:23:18.578857759Z 2021-03-18 14:23:18,578 INFO [exchange.saas.estate-120] SimpleMessageListenerContainer: Restarting Consumer@4280e7b6: tags=[[]], channel=null, acknowledgeMode=AUTO local queue size=0
2021-03-18 14:23:18,580 INFO [exchange.saas.estate-121] CachingConnectionFactory: Attempting to connect to: [8.135.xxx.xxx:15672]
2021-03-18 14:23:23,585 WARN [AMQP Connection 8.135.xxx.xxx:15672] ForgivingExceptionHandler: An unexpected connection driver error occured (Exception message: Socket closed)
原因分析:
配置文件之中用的用户名saas,virtual hosts是/saas,而这台服务器的mq是新添加好的,什么都配置好,所以出现了这个问题。登录mq后台,先新增用户,之后再新增virtual hosts,再为用户配置权限,结果还是不行,一样报错。
再尝试下把ip地址从公网改成私有的,结果还是不行,郁闷啊
解决方案:
端口的问题:原本端口是15672,改成5672就可以
解决思路:
总结下问题:第一步没走错,因为用的VirtualHost 是saas的,而我们没配置,之后的话第二步思路其实没错,就是连不上,那为什么连不上呢?接下来就想错了,个人首先以为是nginx的问题,因为报了一个socket错误,而项目恰好用了socket,结果不是,之后又以为是ip地址的问题,可能做了安全组,结果也不是。之后就百度,以为是没给权限,其实在第一步增加就做完了,之后就陷入了这个死胡同