You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS SQS消息持续处于Available状态堆积未消费问题求助

AWS SQS 消息状态与堆积问题解答

消息状态流转规则

  • 没错,当消费者调用ReceiveMessage接口拉取消息时,处于Available状态的消息会立刻进入In Flight状态。这个状态下消息会被锁定给当前拉取的消费者,其他消费者无法获取,直到两种情况发生:
    • 消费者处理完成后调用DeleteMessage,消息被彻底删除;
    • 消息的可见性超时时间到期,消息会自动回到Available状态,等待下一次被拉取。

正常消费后的指标状态

  • 如果所有消息都被正常处理并删除,Messages available和Messages in flight最终都会变为0。但要注意:在消费过程中(比如消费者刚拿到消息还没处理完),Messages in flight会短暂出现非0值,这属于正常的中间状态。

针对你第三个队列的堆积排查建议

  • 先确认该队列的消费者进程是否正常运行:检查服务是否存活、有没有配置错误(比如SQS权限不足、Endpoint地址写错)导致无法连接队列;
  • 查看队列的可见性超时配置:如果超时时间设置过短,消费者还没处理完消息就超时,消息会反复回到Available状态,看起来像是一直在堆积;
  • 检查消费者的ReceiveMessage调用参数:比如是否设置了合理的MaxNumberOfMessages(单次拉取的最大消息数),是否开启了长轮询(长轮询能减少空轮询,提升消费效率);
  • 查看SQS监控指标:比如NumberOfMessagesDeleted是否有增长(没增长说明根本没删除消息),ReceiveCount(消息被接收的次数)是否异常高(次数高说明消息反复被重新投递,大概率是消费失败或超时);
  • 排查消费者的业务逻辑:是否存在死循环、处理超时的情况,导致无法正常调用DeleteMessage删除消息。

内容的提问来源于stack exchange,提问作者SRai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 17:55:57