我可以查看 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 中结束,这将允许您检查它们、自动通知它们的存在或以不同的方式处理它们。
我有一个 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 中结束,这将允许您检查它们、自动通知它们的存在或以不同的方式处理它们。