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