RABBITMQ too many heartbeats missed

时间:2023-03-09 06:34:35
RABBITMQ too many heartbeats missed

RABBITMQ too many heartbeats missed

执行rabbitmqctl status | grep -A 4 file_descriptors   显示socket_used 达到 socket_limited 的值

增加socket_limited 的上限

1,如果rabbitqmq在系统服务里面

修改

/etc/systemd/system/rabbitmq-server.service.d/limits.conf,

[Service]

LimitNOFILE=300000

2,如果不在系统服务

找到rabbitmq的设置环境变量的文件 rabbitmq-env.conf

ulimit -S -n 8192

#默认设置为4096

重启rabbitmq服务

可能rabbitmq集群的中的disc节点会受到影响,最好disc节点也重启rabbitmq服务

但是rabbitmq进程cpu使用率仍然很高,并没有从根本上解决问题

当 RabbitMQ 的 sockets_used 达到 sockets_limits 时候(连接数耗尽时),最终即使是 Consumer 也会全部阻塞,只有在 sockets_used < sockets_limit 时(释放部分连接后),才会恢复

5672的端口都是ESTABLISHED状态,服务器仅仅是阻塞了新连接,而不是拒绝新连接,如果是使用 HAProxy 等工具搭建的集群,由于服务器依然会接受新连接,因此 HAProxy 不会认为节点已Down,最终会导致整个集群卡住.