Обзор
Serverless Queue — это Kafka-совместимый сервис для обработки потоков сообщений в реальном времени.
В сервисе доступен виртуальный кластер, в котором можно создавать ресурсы для обработки потоков сообщений — топики и группы потребителей. Сервис подходит для нерегулярной нагрузки и если поддержка отдельного Kafka-кластера экономически нецелесообразна.
Сценарии использования:
- Обработка заказов в интернет-магазине
Прием и обработка заказов в интернет-магазине в периоды, когда трафик возрастает в несколько раз. Очередь буферизует запросы и гарантирует их сохранность, даже если система обработки платежей временно перегружена. - Отправка уведомлений и рассылок
Массовая отправка электронных писем и push-уведомлений. Например, рассылка новостей, уведомлений о статусе заказа или восстановление паролей. - Обработка медиафайлов
Конвертация изображений, сжатие видео или генерация превью после загрузки пользователем. Очередь позволяет выполнять такие ресурсоемкие операции в фоновом режиме, не задерживая отклик интерфейса. - Сбор и обработка логов
Централизованный сбор событий и ошибок с множества серверов и микросервисов для последующего анализа, мониторинга и расследования инцидентов.
Ключевые особенности
Заголовок раздела «Ключевые особенности»Совместимость с Apache Kafka
Использование стандартного Kafka-протокола позволяет работать со стандартными клиентскими библиотеками (Java, Python, Go) и инструментами (kafkactl, AKHQ, Kafka CLI). Это позволяет мигрировать в Serverless Queue как из собственных Kafka-кластеров, так и из облачных Kafka-сервисов без изменения кода приложений.Бессерверная архитектура
Для использования сервиса не нужно управлять кластерами. Достаточно только подключиться к виртуальному кластеру.Автоматическое масштабирование и высокая доступность
Сервис реплицирует данные и распределяет нагрузку. Это гарантирует надежную доставку сообщений и устойчивость к сбоям.Автоматическая очистка
Сообщения автоматически удаляются через заданное время. Это позволяет управлять сроком жизни данных и за счет этого экономить объем занимаемого места.
Как работает сервис
Заголовок раздела «Как работает сервис»В основе архитектуры Serverless Queue лежит логический брокер с несколькими равнозначными репликами, которые принимают и распределяют сообщения для обработки. Для обработки трафика выделяется столько ресурсов, сколько нужно в текущий момент.
Потоки данных в сервисе группируются по темам и направляются в топики. Например, один топик может содержать сообщения с координатами движения курьера, а второй топик — информацию о статусе доставки. Каждый топик состоит из одного или нескольких разделов, в которые брокер записывает входящие сообщения.
Сообщения поступают в топики от производителей (producers) — приложений и сервисов-источников. Производитель отправляет сообщение в нужный топик и выбирает раздел, в который будет записано это сообщение.
Чтение и обработку сообщений выполняют потребители (consumers) — приложения и сервисы-получатели. Они могут работать:
- независимо — каждый потребитель читает все сообщения из топика, например, для мониторинга;
- в составе группы потребителей — разделы распределяются между потребителями в группе, и каждый потребитель читает сообщения только из своих разделов.
При резком росте трафика достаточно подключить в группу потребителей нужное количество экземпляров приложения-потребителя. Сервис автоматически перераспределит разделы между ними.
Все сообщения передаются по защищенному соединению (SASL_SSL) и хранятся до 10 дней, после чего автоматически удаляются.
В сервисе реализована репликация. Однако управление репликацией недоступно пользователю. Данные разделов реплицируются за счет хранения в распределенном отказоустойчивом хранилище. При этом фактор репликации зафиксирован равным 1 по количеству брокеров.
Доступ к управлению ресурсами сервиса регулируется сервисными ролями.
Активация
Заголовок раздела «Активация»Чтобы начать пользоваться сервисом Serverless Queue, нажмите кнопку Оставить заявку на странице сервиса.
После обработки заявки на странице сервиса станет доступна его активация. Для активации достаточно, имея роль admin на уровне проекта, нажать кнопку Активировать.
Тарификация
Заголовок раздела «Тарификация»На стадии Preview сервис не тарифицируется.