我有一系列应用程序使用来自SQS队列的消息。如果由于某种原因,这些消费者中的一个出现故障,并停止使用消息,我希望得到通知。做这件事最好的方法是什么?
请注意,这些队列中的一些队列每2-3天只能将一条消息放入队列,因此等待队列中的消息数量触发通知对我来说不是一个好的选择。
我正在寻找的是可以监视SQS队列并说“此消息已经在这里一个小时,没有任何东西处理它……让别人知道”的东西。
发布于 2015-12-19 00:03:08
一个可能的解决方案(可能不是最优雅的方案),它根本不需要使用CloudWatch (根据OP的评论,所需的跟踪不能通过CloudWatch警报实现)。假设您有要在Service处理的队列,并且接收端是通过长轮询实现的。运行Lambda函数(比如每小时一次),侦听队列并读取消息,但从不删除(服务在处理后会删除消息)。在队列中,将Maximum Receives设置为您想要的任何值,假设为3。如果Lambda函数运行3次,并且所有3次消息都存在于队列中,则消息将被推送到Dead Letter队列(如果设置了重新驱动策略,则会自动推送)。无论何时将新消息推送到死信队列,这都是一个很好的指示,表明您的服务要么停机,要么处理请求的速度不够快。所有变量都可以根据您的需要进行更改
https://stackoverflow.com/questions/34358481
复制相似问题