Обзор
Важно
Сервис предоставляется на стадии готовности 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 сервис не тарифицируется.