Skip to content

Обзор

Важно

Сервис предоставляется на стадии готовности Preview.

Serverless Queue — это Kafka-совместимый сервис для обработки потоков сообщений в реальном времени.

Проекту в MWS доступен виртуальный кластер, в котором можно создавать ресурсы для обработки потоков сообщений — топики и группы потребителей. Сервис подходит для нерегулярной нагрузки и если поддержка отдельного Kafka-кластера экономически нецелесообразна.

Сценарии использования:

  • Обработка заказов в интернет-магазине
    Прием и обработка заказов в интернет-магазине в периоды, когда трафик возрастает в несколько раз. Очередь буферизует запросы и гарантирует их сохранность, даже если система обработки платежей временно перегружена.
  • Отправка уведомлений и рассылок
    Массовая отправка электронных писем и push-уведомлений. Например, рассылка новостей, уведомлений о статусе заказа или восстановление паролей.
  • Обработка медиафайлов
    Конвертация изображений, сжатие видео или генерация превью после загрузки пользователем. Очередь позволяет выполнять такие ресурсоемкие операции в фоновом режиме, не задерживая отклик интерфейса.
  • Сбор и обработка логов
    Централизованный сбор событий и ошибок с множества серверов и микросервисов для последующего анализа, мониторинга и расследования инцидентов.

Ключевые особенности

  • Совместимость с Apache Kafka
    Использование стандартного Kafka-протокола позволяет работать со стандартными клиентскими библиотеками (Java, Python, Go) и инструментами (kafkactl, AKHQ, Kafka CLI). Это позволяет мигрировать без изменения кода приложений.

  • Бессерверная архитектура
    Для использования сервиса не нужно управлять кластерами. Достаточно только подключиться к виртуальному кластеру.

  • Автоматическое масштабирование и высокая доступность
    Сервис реплицирует данные и распределяет нагрузку. Это гарантирует надежную доставку сообщений и устойчивость к сбоям.

  • Автоматическая очистка
    Сообщения автоматически удаляются через заданное время. Это позволяет управлять сроком жизни данных и за счет этого экономить объем занимаемого места.

Как работает сервис

В основе архитектуры Serverless Queue лежит логический брокер с несколькими равнозначными репликами, которые принимают и распределяют сообщения для обработки. Для обработки трафика выделяется столько ресурсов, сколько нужно в текущий момент.

Потоки данных в сервисе группируются по темам и направляются в топики. Например, один топик может содержать сообщения с координатами движения курьера, а второй топик — информацию о статусе доставки. Каждый топик состоит из одного или нескольких разделов, в которые брокер записывает входящие сообщения.

Сообщения поступают в топики от производителей (producers — приложений и сервисов-источников). Производитель отправляет сообщение в нужный топик и выбирает раздел, в который будет записано это сообщение.

Чтение и обработку сообщений выполняют потребители (consumers — приложения и сервисы-получатели). Они могут работать:

  • независимо — каждый потребитель читает все сообщения из топика, например, для мониторинга;
  • в составе группы потребителей — разделы распределяются между потребителями в группе, и каждый потребитель читает сообщения только из своих разделов.

При резком росте трафика достаточно подключить в группу потребителей нужное количество экземпляров приложения-потребителя. Сервис автоматически перераспределит разделы между ними.

Все сообщения передаются по защищенному соединению (SASL_SSL) и хранятся до 10 дней, после чего автоматически удаляются.

В сервисе реализована репликация. Однако управление репликацией недоступно пользователю. Данные разделов реплицируются за счет хранения в распределенном отказоустойчивом хранилище. При этом фактор репликации зафиксирован равным 1 по количеству брокеров.

Доступ к управлению ресурсами сервиса регулируется сервисными ролями.

Активация

Чтобы начать пользоваться сервисом Serverless Queue, нажмите кнопку Оставить заявку на странице сервиса. Доступ к сервису появится, как только заявка будет обработана.

Тарификация

На стадии Preview сервис не тарифицируется.