我可以查看 Fifo 队列中不可接收的可用消息吗

Can I view an available message that isn't receivable in a Fifo queue

我有一个 SQS FIFO 队列,它使用数千个消息组 ID 进行排序和恰好一次处理。

大多数消息由消费者快速处理,并从队列中删除。

但是,由于某些消息可能需要一段时间才能处理,因此队列中的 VisibilityTimeout 需要 2 小时。

有时我会在队列中收到一两条显示为 可用 的消息,但它们不是 可接收的 因为具有相同消息组 ID 的消息正在发送中。

我知道我不能收到这些消息,但是有什么方法可以查看这些消息来知道哪个消息组id导致问题?

遗憾的是,您无法查看正在发送的消息,因为其他消费者根本看不到它们。

但是,如果您有一些消息导致问题,例如,它们是不可接收的,您可以考虑设置 dead letter queue (DLQ):

Dead-letter queues are useful for debugging your application or messaging system because they let you isolate problematic messages to determine why their processing doesn't succeed.

这样,这些 "bad" 消息将在 DLQ 中结束,这将允许您检查它们、自动通知它们的存在或以不同的方式处理它们。