问题
启动项目后项目正常运行,并且RabbitMQ能够正常生产和消费消息,但是运行一段时间后“莫名其妙”报错,报错信息如下(报错重复很多次,以下信息为简化后主要报错信息):
2019-06-15 12:19:48 WARN [Class:c.r.c.i.ForgivingExceptionHandler->Thread:AMQP Connection 47.96.88.182:5672] An unexpected connection driver error occured (Exception message: Connection reset)
2019-06-15 12:19:48 ERROR [Class:o.s.a.r.c.CachingConnectionFactory$DefaultChannelCloseLogger->Thread:AMQP Connection 47.96.92.182:5672] Channel shutdown: connection error
分析
-
最直观主要报错提示为:发生意外连接驱动程序错误(异常消息:连接重置)和通道关闭:连接错误
-
启动rabbit server,访问 http://localhost:15672/ ,使用默认账户 guest / guest 可以正常访问
- 在配置文件中的 springbootba 用户,是我们自己新建的一个用户。
- 实际上就是当我们配置RabbitMQ后虽然可以使用里面配置文件中的用户名和密码登录,但是,该用户只有查看相关信息的权限
解决
-
只需将用户添加权限即可
-
具体操作可以访问此链接,讲解还是比较详细:详细操作,戳我
-
也可以在RabbitMQ上设置用户权限:
通过命令授权
语法: set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
执行: rabbitmqctl set permissions -p / admin .* .* .* 完成对admin的授权,然后启动项目就正常了