Сообщение -> sqs против сообщения ->> sns ->>> sqs

#amazon-web-services #amazon-sqs #amazon-sns

Вопрос:

У меня есть генератор задач для генерации сообщений о задачах в очередь SQS и группа работников для опроса очереди SQS для обработки задачи. В этом случае есть ли какая-либо выгода в том, чтобы позволить генератору задач сначала публиковать сообщения в теме SNS, а затем очередь SQS подписывается на тему SNS? Я предполагаю, что прямой публикации в очереди SQS достаточно.

Ответ №1:

Предполагая, что вам не нужно рассылать сообщения разным типам работников, и ваши работники выполняют одну и ту же работу, тогда нет, вы этого не делаете.

Каждый работник может принять и обработать одно сообщение.

Один из пунктов, о котором следует помнить, — это тайм-ауты до того, как сообщения снова станут видимыми в SQS. т. Е. Неправильное конфигурирование тайм-аутов может привести к тому, что другой работник обработает то же сообщение.

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html

Когда потребитель получает и обрабатывает сообщение из очереди, сообщение остается в очереди. Amazon SQS не удаляет сообщение автоматически. Поскольку Amazon SQS является распределенной системой, нет никакой гарантии, что потребитель действительно получит сообщение (например, из-за проблемы с подключением или из-за проблемы в приложении потребителя). Таким образом, потребитель должен удалить сообщение из очереди после его получения и обработки. Время ожидания видимости

Сразу после получения сообщения оно остается в очереди. Чтобы другие потребители не могли повторно обработать сообщение, Amazon SQS устанавливает тайм-аут видимости-период времени, в течение которого Amazon SQS запрещает другим потребителям получать и обрабатывать сообщение. Тайм-аут видимости сообщения по умолчанию составляет 30 секунд. Минимальное значение-0 секунд. Максимум-12 часов. Для получения информации о настройке времени ожидания видимости для очереди с помощью консоли

как sqs обрабатывает сообщения и тайм-ауты