Разработчик создал микросервис, который использует AWS Lambda для обработки сообщений из стандартной очереди Amazon SQS. Функция Lambda обогащает каждое сообщение SQS, вызывая внешние API, а затем записывает данные в таблицу Amazon Redshift. Очередь должна поддерживать до 1000 сообщений в секунду. Во время тестирования в таблицу Redshift неоднократно вставлялись дублирующиеся строки, поскольку обрабатывались дублирующиеся сообщения SQS; все дублирующиеся сообщения были поставлены в очередь в течение 1 минуты друг от друга. Как разработчик должен решить эту проблему?
Выберите ответ
Нажмите на вариант, чтобы проверить свой ответ.
Правильный ответ: Переключиться на очередь SQS FIFO и включить дедупликацию сообщений в этой очереди FIFO..
Почему это правильный ответ
Правильный ответ — переключиться на очередь SQS FIFO и включить дедупликацию сообщений. Очереди SQS FIFO гарантируют строгий порядок сообщений и поддерживают дедупликацию, что предотвращает повторную обработку идентичных сообщений в течение 5-минутного окна дедупликации. Это напрямую решает проблему дублирования записей в Redshift. Снижение параллельности Lambda не устранит дубликаты, так как проблема в самой доставке сообщений SQS, а не в параллельной обработке. Использование /tmp для отслеживания ID сообщений неэффективно и ненадежно, поскольку это временное хранилище, которое очищается между вызовами Lambda, и не масштабируется для распределенных систем. Стандартные очереди SQS не поддерживают дедупликацию на основе message group ID; эта функция доступна только в очередях FIFO.
Сдайте экзамен — без бесконечного поиска ответов
Получите все проверенные вопросы и объяснения для этого экзамена в одном месте и сэкономьте часы подготовки. 1000+ сертификаций · 20+ языков · начните бесплатно.
Сдайте экзамен быстрее → Карта не требуется