RabbitMQ遇到 Management API returned status code 500 记录解决
1、问题描述:
这几天公司的RabbitMq总是频繁的出现问题,测试人员说mq连接不上了,总是出现
Management API returned status code 500
的错误,说明mq服务挂了,领导一直在邮件中@我,说mq耽误项目测试进度了,头都大了,各种找解决办法。。。。
错误页面截图:
2、解决思路
1、查看MQ日志
默认路径在 /var/log/rabbitmq 目录下 找到了当天的日志 因为不知道什么时候宕机的
这边有两个日志,一个是log文件中的crush日志,还有一个是mq的日志
**日志截图:**看到了很多连连接的错误
还看到了许多
out of file description
警告⚠️
跟测试告诉我的时间差不多 然后我就观察mq管理页面的 file description 和socket description
当file description突破1024的时候居然复现了上面的问题,服务器挂了挂了。。。
感觉有点思路了,然后还不确定,然后重启了服务器,观察这两个值,最后当File Description达到峰值的时候,再一次复线上面的错误,所以我觉得就是这个问题,所以办法就是解决这个连接数的问题了。。。。
在RabbitMQ中,Socket descriptors 是 File descriptors 的子集,它们也是一对此消彼长的关系。然而,它们的默认配额并不大,File descriptors 默认值为“1024”,而 Socket descriptors 的默认值也只有“829”,同时,File descriptors 所能打开的最大文件数也受限于操作系统的配额。因此,如果要调整 File descriptors 文件句柄数,就需要同时调整操作系统和RabbitMQ参数。
2、修改连接数
1、编辑rabbitmq-server.service文件
直接在这里添加一行代码 增加连接数 在[Service]字段添加一行LimitNOFILE=65535
位置: /usr/lib/systemd/system/rabbitmq-server.service
vi /usr/lib/systemd/system/rabbitmq-server.service
2、然后关机项目 关闭服务
rabbitmqctl stop
3、启动服务
systemctl daemon-reload
systemctl restart rabbitmq-server
4、查看连接数
输入命令或者直接去页面上看
输入命令:
rabbitmqctl status
或者去页面上看
问题解决。。。。。。