rabbitmq集群持续出现少量unacked消息
- 2020-04-14 22:48:00
- CJL 原创
- 5845
问题描述:
仅rabbitmq集群出现怀疑与集群负载均衡的tcp连接保持配置有关。
解决方案:
1、rabbitmq异常没有处理,php因异常或主动结束进程未主动断开连接,通过负载均衡后会保持此连接。需catch异常主动断开连接
2、几分钟未接受消息,在推送消息后接收消息成功,发送ack失败,程序异常退出,无法主动断开连接。可能负载均衡会对无数据的tcp单向断开,经测试加心跳后可解决。php-amqplib 2.9.0~2.10.0 之间是默认打开heartbeat=60的,后因为服务端兼容问题默认改为关闭了。需主动打开心跳或服务端配置心跳
php-amqplib关于心跳请求的讨论:https://github.com/php-amqplib/php-amqplib/issues/563
发表评论