Все, что нужно знать об Amazon Simple Queue Service (SQS)…

AWS или Amazon Web Services — это поставщик облачных услуг, который помогает бизнесу управлять своей цифровой инфраструктурой. Предоставляет различные услуги для решения сложных задач. Одной из таких служб является Простая служба очереди (SQS).

Что такое SQS?

Simple Queue Service — это распределенная очередь обмена сообщениями, помогающая решить проблему подключения производителя к потребителю для распределенных систем. SQS позволяет вашим службам отправлять и сохранять сообщения в очереди любого объема без потери сообщений, даже если потребитель не работает.

Очередь сообщений — это метод отправки контекста о процессе между службами в веб-приложении.

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

Почему SQS?

SQS уменьшает ваши накладные расходы на управление распределенной очередью сообщений для отправки, хранения и получения сообщений между службами в распределенном веб-приложении.

Возможности SQS:

Вот некоторые особенности SQS:

  1. Доставка по крайней мере один раз. Это означает, что сообщение, однажды отправленное в очередь, будет обработано по крайней мере один раз. В стандартной очереди могут быть дубликаты, а в FIFO она будет использована ровно тогда, когда дубликаты не разрешены.
  2. Отказоустойчивость. Когда потребитель выходит из строя, это не влияет на очередь. Поскольку он отделен, все сообщения, находящиеся в очереди, останутся и могут быть обработаны после возобновления работы службы.
  3. Блокировка сообщений. Когда сообщение используется, оно становится недоступным для других пользователей. Если сообщение не удается, сообщение снова станет видимым. Это часть тайм-аута видимости.
  4. Неограниченное количество сообщений. Количество сообщений, которые вы можете отправить в очереди, не ограничено. Таким образом, в случае всплеска запросов очередь прекрасно справится с этим всплеском.
  5. Пакеты: мы можем отправить 10 сообщений за раз без дополнительной оплаты.
  6. Безопасность. Защищено AWS IAM (управление идентификацией и доступом) и использует HTTPS и TLS.
  7. надежность:очередьхранится в одном регионе AWS с несколькими дублирующими зонами доступности (AZ). Таким образом, если затронут один регион, это не делает сообщения недоступными.

Типы очередей SQS:

Существует два разных типа очередей, которые предоставляет AWS:

  • Стандартная очередь. Ее можно использовать во многих сценариях, если вы согласны с более чем одним доставленным или неупорядоченным сообщением.
    Сообщения в очереди не упорядочены. Это означает, что сообщения, отправленные в одном порядке, могут не быть получены в том же порядке.
    Поддержка неограниченного количества сообщений/транзакций в секунду (TPS).
    Сообщения могут дублироваться, чтобы обеспечить доставку хотя бы один раз.

  • FIFO (первым пришел — первым обслужен): FIFO используется для сценариев, в которых один или оба порядка события и дублирования сообщений недопустимы.
    Сообщения в очереди сохраняют порядок, в котором сообщение помещается в очередь.
    Это может поддерживать до 30 000 сообщений с пакетной обработкой и 3000 без пакетной обработки.
    Сообщения никогда не дублируются в этой очереди.

Функционал СКС:

SQS имеет различные функциональные возможности, вот некоторые из них:

  • Очередь с задержкой. Вы можете указать задержку до 15 минут для очереди или сообщения. Это сделает сообщения, помещаемые в очередь, невидимыми для потребителей до указанного времени задержки. Это помогает, когда вы хотите, чтобы производитель выполнил некоторую обработку до того, как потребитель получит сообщение.
  • Тайм-аут видимости: как только сообщение получено потребителем, очередь блокирует сообщение до определенного периода времени от других потребителей. Очередь будет ждать, пока потребитель либо отправит подтверждение завершения, либо удалит сообщение из очереди. Или отправьте неудачное событие или пропустите подтверждение, чтобы повторить попытку сообщения после истечения времени ожидания.
    Окно по умолчанию составляет 30 секунд, а максимальное — 12 часов.
  • Очередь недоставленных писем. Очередь имеет конфигурацию повторных попыток, которая сообщает, сколько раз будет повторяться сообщение в очереди. Но как только окно повтора закончится, нам нужно отладить основную причину сбоя и повторить попытку сообщения. Для этого мы можем настроить очередь с политикой повтора для отправки сообщений, которые не удалось выполнить, даже после повторной попытки. Это может помочь, когда потребитель сталкивается с некоторыми сбоями клиентских зависимостей.

Когда использовать SQS?

SQS (Simple Queue Service) предлагает множество преимуществ, включая возможность разделения и масштабирования микросервисов, приложений и серверов, а также возможность надежной передачи любого объема данных. Однако важно тщательно взвесить все «за» и «против» использования SQS и определить, подходит ли он наилучшим образом для ваших конкретных потребностей. Вот несколько сценариев, в которых SQS может быть особенно полезен для веб-приложений:

  1. Асинхронная обработка. SQS позволяет переносить трудоемкие задачи, такие как обработка изображений или видео, на отдельные рабочие системы, которые затем могут обрабатывать задачи параллельно. Это позволяет вашему веб-приложению быстрее реагировать на запросы, поскольку ему не нужно ждать завершения задачи, прежде чем возвращать ответ.
  2. Балансировка нагрузки. SQS помогает равномерно распределить рабочие нагрузки между несколькими системами, что повышает масштабируемость и надежность вашего веб-приложения.
  3. Развязка. SQS можно использовать для разделения различных компонентов вашего веб-приложения, позволяя им работать независимо и асинхронно. Это может сделать ваше приложение более устойчивым к сбоям и упростить его изменение или обновление.
  4. Архитектура, управляемая событиями: SQS можно использовать для запуска событий или действий в ответ на определенные события, например создание или удаление записи в базе данных. Это может позволить вам создавать более гибкие и отзывчивые веб-приложения.

В целом, SQS может быть мощным инструментом для веб-разработчиков, но важно тщательно оценить его пригодность для ваших конкретных потребностей и вариантов использования.

Клиенты AWS SQS:

SQS используется компаниями по всему миру для создания и эксплуатации распределенных систем, приложений и сервисов. Некоторые известные примеры компаний, использующих AWS SQS, включают:

  • Amazon. Amazon, крупнейший в мире интернет-магазин, использует SQS для поддержки своей платформы электронной коммерции и управления потоками данных между различными системами и службами.
  • Lyft. Компания по заказу такси использует SQS для своих диспетчерских и биллинговых систем.
  • Cred: финтех-компания использует SQS для управления потоком данных между своим мобильным приложением и серверными системами, включая системы обработки платежей и управления взаимоотношениями с клиентами.
  • Razorpay. Индийская платежная компания использует SQS для своих систем обработки платежей и различных деловых партнеров.
  • Средний. Платформа онлайн-публикаций использует SQS для своих систем управления контентом и аналитики.
  • OYO: платформа онлайн-бронирования отелей использует SQS для своих систем бронирования и резервирования.
  • Intuit: компания, занимающаяся разработкой программного обеспечения для финансов, использует SQS для своего программного обеспечения для бухгалтерского учета и подготовки налогов.
  • Quora. Платформа вопросов и ответов использует SQS для своих алгоритмов поиска и рекомендаций.
  • Accenture: глобальная компания, предоставляющая профессиональные услуги, использует SQS для управления проектами и инструментов для совместной работы.

Это всего лишь несколько примеров многих компаний, которые используют AWS SQS для создания и эксплуатации распределенных систем, приложений и сервисов.

Это небольшой краткий обзор AWS SQS. Отправьте нам свой отзыв, используя кнопку сообщения ниже. Ваши отзывы помогают нам создавать лучший контент для вас и других. Спасибо за прочтение!

Если вам понравилась статья, нажмите несколько раз кнопку 👏🏻 ниже. Чтобы показать свою поддержку!