Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад

Какие уровни гарантий доставки сообщений существуют (at-most-once, at-least-once, exactly-once) и как на практике приблизиться к семантике exactly-once?

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

Короткий ответ

Существуют три уровня доставки: at-most-once (сообщение может потеряться), at-least-once (сообщение будет доставлено, но возможны дубли), и exactly-once (каждое сообщение обрабатывается ровно один раз). Настоящий exactly-once почти невозможен в распределённых системах, но его можно приблизить с помощью идемпотентности обработчика, дедупликации сообщений, транзакций в базе и атомарного подтверждения обработки. Обычно создают таблицу обработанных событий и выполняют операции в рамках одной транзакции, чтобы повторный ретрай не нарушал данные.

Длинный ответ

Зарегистрироваться

Развернутый ответ доступен только зарегистрированным пользователям.

Уровень

  • Рейтинг:

    5

  • Сложность:

    8

Навыки

  • RabbitMQ

    RabbitMQ

Ключевые слова

#exactly

#once

Подпишись на PHP Developer в телеграм