Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Message Queue
    • Обзор
    • Очереди сообщений
    • Сообщения
    • Дедупликация
    • Таймаут видимости
    • Long Polling
    • Что такое Dead Letter Queue (DLQ)
    • Отложенная доставка сообщений в очереди
    • Квоты и лимиты
    • Метки очередей
    • Сравнение с Yandex Data Streams
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Публичные материалы
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Дедупликация по идентификатору
  • Дедупликация по содержимому
  • Повторные попытки получения сообщений
  1. Концепции
  2. Дедупликация

Дедупликация

Статья создана
Yandex Cloud
Улучшена
Sergey K.
Обновлена 4 сентября 2020 г.
  • Дедупликация по идентификатору
  • Дедупликация по содержимому
  • Повторные попытки получения сообщений

Очереди FIFO реализуют механизм дедупликации сообщений с помощью набора параметров, обеспечивающих доставку и обработку сообщений только один раз и в порядке их отправки.

Дедупликация по идентификаторуДедупликация по идентификатору

Сообщения, отправляемые в очереди FIFO, получают идентификатор для дедупликации отправляемых в очередь сообщений (MessageDeduplicationId). Если сообщение с идентификатором принято, то все остальные сообщения с таким же идентификатором будут поступать в очередь, но не будут доставляться получателю в течение пятиминутного интервала дедупликации. Если идентификатор не указан, отправка сообщения в очередь FIFO не выполняется.

Каждое сообщение, отправляемое в очередь FIFO, должно иметь уникальный идентификатор дедупликации. Если сообщение будет доставлено, то другие сообщения с таким же идентификатором не будут доставляться.

Параметр MessageDeduplicationId доступен получателю сообщения и может использоваться для устранения проблем с доставкой сообщений.

Если сообщение отправлено успешно, а ответ о приеме потерян, то Message Queue не распознает дубликат, если будет принято сообщение с тем же идентификатором после истечения интервала дедупликации.

Дедупликация по содержимомуДедупликация по содержимому

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

Работа механизма дедупликации зависит от настроек дедупликации очередей и сообщений:

  1. Если у отправленного сообщения нет идентификатора дедупликации и в очереди FIFO не включена дедупликация по содержимому, то отправителю вернется ответ с ошибкой.
  2. Если у отправленного сообщения есть идентификатора дедупликации и в очереди FIFO включена дедупликация по содержимому, то будет использовано значение идентификатора из сообщения.

Сообщения с одинаковым содержимым, поступающие в очередь с включенной дедупликацией по содержимому сообщения во время интервала дедупликации, считаются дубликатами: получателю доставляется только одна копия сообщения.

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

Повторные попытки получения сообщенийПовторные попытки получения сообщений

При получении сообщений из очередей FIFO используется идентификатор попытки получения сообщений — ReceiveRequestAttemptId.

Если приложение потеряло связь с Message Queue, этот идентификатор можно использовать для повторного получения набора сообщений. Параметр можно использовать в течение 5 минут после вызова метода ReceiveMessage. При запросе сообщений идентификатор можно указывать явно или использовать автоматически сгенерированные идентификаторы.

Повторное получение сообщений с тем же ReceiveRequestAttemptId возможен, если состав и видимость сообщения не менялись. Во время таймаута видимости повторные запросы сообщений с одинаковыми ReceiveRequestAttemptId будут возвращать одни и те же сообщения с одинаковым параметром ReceiptHandle.

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

Предыдущая
Сообщения
Следующая
Таймаут видимости
Проект Яндекса
© 2025 ООО «Яндекс.Облако»