今天遇到一个rabbitmq的连接问题,之前自己写代码测试的时候并没有出现过,所以做个小总结,由于是其他项目测试部署环境发现的问题,所以一开始排查还是有点坑。。。
客户端上新建一个rabbitmq的connection,没有创建成功,有几种可能,1:用户名密码不对,可能根本就没有创建该用户;2:没有访问权限;3:没有设置virtual_host;
前两点就不说了,自己要去乖乖的创建配置好,第三点有点容易忽略,因为我之前客户端一直用guest用户登录,rabbitmq默认的virtual host是“\”,所以一直没出现问题,今天尝试用另一个用户exh_admin登陆,发现无法创建连接
当时看这里的报错还无法定位问题所在,后来登陆服务器查看MQ的日志,找到如下信息
貌似有点头绪了,根据管理界面查看,exh_admin用户并没有“\”的权限,只设置了"exh",代码中发消息之前没有设置的话,系统是默认给的"\"virtual host,所以连接会创建失败