Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Message Queue
  • Начало работы
    • Быстрый старт
    • Поддерживаемые инструменты
    • Примеры кода
      • Python
      • Node.js
      • PHP
      • Celery
      • JMS
      • Laravel
      • Terraform
      • Golang
  • Пошаговые инструкции
    • Обзор
    • Создание новой очереди сообщений
    • Отправка сообщений
    • Прием и удаление сообщений
    • Удаление очереди сообщений
    • Мониторинг процессов в очереди
  • Концепции
    • Обзор
    • Очереди сообщений
    • Сообщения
    • Дедупликация
    • Таймаут видимости
    • Long Polling
    • Что такое Dead Letter Queue (DLQ)
    • Отложенная доставка сообщений в очереди
    • Квоты и лимиты
    • Сравнение с Yandex Data Streams
  • Практические руководства
    • Конвертация видео в GIF на Python
  • Управление доступом
  • Правила тарификации
  • API Yandex Message Queue
    • Обзор
    • Queue
      • CreateQueue
      • DeleteQueue
      • GetQueueAttributes
      • GetQueueUrl
      • ListQueues
      • PurgeQueue
      • SetQueueAttributes
    • Message
      • ChangeMessageVisibility
      • ChangeMessageVisibilityBatch
      • DeleteMessage
      • DeleteMessageBatch
      • ReceiveMessage
      • SendMessage
      • SendMessageBatch
    • Типы данных
      • BatchResultErrorEntry
      • ChangeMessageVisibilityBatchRequestEntry
      • ChangeMessageVisibilityBatchResultEntry
      • DeleteMessageBatchRequestEntry
      • DeleteMessageBatchResultEntry
      • Message
      • MessageAttributeValue
      • SendMessageBatchRequestEntry
      • SendMessageBatchResultEntry
    • Стандартные ошибки
  • Публичные материалы
  • Вопросы и ответы
  1. Концепции
  2. Сравнение с Yandex Data Streams

Сравнение с Yandex Data Streams

Статья создана
Yandex Cloud
  • Yandex Message Queue
  • Yandex Data Streams
  • Сравнение Yandex Message Queue и Yandex Data Streams

В Yandex Cloud для обмена данными используются сервисы Yandex Message Queue и Yandex Data Streams.

Сервисы шин обмена данными и потоков передачи данных решают похожие задачи, но предназначены для разных сценариев использования:

  • Yandex Message Queue ориентирован на передачу сообщений между компонентами распределенных приложений.
  • Yandex Data Streams предназначен для передачи потоков данных (например, журналов работы приложений или действий пользователей, CDC-потоков изменений БД, данных с устройств) для их обработки приложениями.

Yandex Message Queue

Шины обмена сообщениями ориентированы на доставку отдельных, независимых сообщений компонентам приложений (обработчикам) и реализуют сценарий очереди обработки задач. Задачи записываются в очередь, а приложение-обработчик получает их из этой очереди и исполняет. Из одной очереди сообщения считывает только одно приложение. Обработчик может состоять из нескольких одновременно работающих экземпляров.

Шины обмена сообщениями подходят для обработки набора независимых задач, каждая из которых может быть выполнена любым обработчиком. Главное, чтобы событие было обработано, порядок обработки не важен.

Например, очереди сообщений используют поисковые роботы. Обходчик интернета находит URL страниц и складывает их в очередь. Процессы-парсеры получают эти URL, скачивают страницы и выполняют обработку. Очередь сообщений выступает как очередь задач, повышая отказоустойчивость и масштабируемость такой системы.

Yandex Data Streams

Yandex Data Streams предназначен для того, чтобы передавать в приложения не отдельные сообщения, а потоки данных. Пропускная способность обрабатываемых потоков может быть от килобайтов до терабайтов в час и более.

Данные в Yandex Data Streams передаются через потоки, которые состоят из сегментов. У всех входящих записей есть ключи, которые определяют в какой сегмент попадут данные. В пределах одного сегмента данные считываются в порядке записи.

В Yandex Data Streams, в отличие от Yandex Message Queue, несколько разных приложений могут одновременно считывать данные из одного потока. При этом каждое приложение может читать данные с произвольной позиции.

Считывать данные одновременно разными приложениями может быть необходимо в следующих случаях:

  • Когда одни и те же данные нужно обработать сразу несколькими приложениями.
  • Для защиты от ошибок. Если в обработчике была ошибка, то можно исправить ошибку и пересчитать хранимые в очереди данные заново, уже правильным способом.
  • При запуске нового приложения. При разработке новой версии приложения его можно запустить параллельно с основным и проверить в работе над реальными данными.

Через шины данных можно передавать любые данные, но чаще всего передают журналы работы приложений, журналы действий пользователей или данные с устройств. Для этого Yandex Data Streams поддерживает HTTP API.

Сравнение Yandex Message Queue и Yandex Data Streams

Параметр Yandex Message Queue Yandex Data Streams
Основной сценарий Очередь задач между компонентами приложения Пересылка данных между приложениями, поставка данных в системы хранения Yandex Cloud
Кто получает данные Компоненты одного приложения Независимые приложения
Гарантии At least once для обычной очереди, exactly once для FIFO-очереди At least once
Порядок получения сообщений Гарантируется для FIFO-очереди, не гарантируется для обычной очереди Гарантируется
Пропускная способность До 300 сообщений в секунду для обычной очереди, до 30 сообщений в секунду для FIFO-очереди Не ограничена, определяется числом сегментов
Что тарифицируется За запросы на запись и чтение сообщений За сегменты, их скорость и объем хранимых данных
Поддерживаемый протокол Amazon SQS API Amazon Kinesis Data Streams API
С какими сервисами Yandex Cloud есть интеграция Yandex Cloud Functions, Yandex API Gateway Yandex Cloud Functions, Yandex API Gateway, Yandex Data Transfer
Надежность Данные хранятся во всех зонах доступности Данные хранятся во всех зонах доступности
Масштабируемость на чтение Серверная Клиентская (KCL). Поддерживаются версии KCL 1.x

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Yandex Message Queue
  • Yandex Data Streams
  • Сравнение Yandex Message Queue и Yandex Data Streams