我有一个SQS FIFO队列,该队列使用数千个消息组ID进行排序和一次处理。
大多数消息由使用者快速处理,并从队列中删除。
但是,由于某些消息可能需要一段时间才能处理,因此队列上的VisibilityTimeout
是2小时。
有时,我会在队列中收到一两则显示为 available 的消息,但它们却 receivable ,因为它们具有相同的消息组ID正在进行中。
我知道我不能接收这些消息,但是有什么方法可以查看这些消息以了解哪个消息组标识引起了问题?
答案 0 :(得分:1)
不幸的是,您无法查看飞行中的消息,因为其他消费者根本看不到这些消息。
但是,如果您有一些引起问题的消息(例如,无法接收),则可以考虑设置dead letter queue (DLQ):
死信队列对于调试应用程序或消息传递系统很有用,因为它们使您可以隔离问题消息以确定其处理为何不成功。
通过这种方式,这些“不良”消息将最终出现在DLQ中,这将使您可以检查它们,自动获悉它们的存在或以其他方式对其进行处理。