Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
В чём разница между at-least-once и exactly-once delivery? Почему exactly-once сложно реализовать?
At-least-once — сообщение может быть доставлено более одного раза, но не потеряется. Exactly-once — доставляется один и только один раз. Последний подход требует координации и идемпотентности на всех уровнях, что делает его реализацию сложной в распределённых системах.
Какие уровни гарантий доставки сообщений существуют (at-most-once, at-least-once, exactly-once) и как на практике приблизиться к семантике exactly-once?
Существуют три уровня доставки: at-most-once (сообщение может потеряться), at-least-once (сообщение будет доставлено, но возможны дубли), и exactly-once (каждое сообщение обрабатывается ровно один раз). Настоящий exactly-once почти невозможен в распределённых системах, но его можно приблизить с помощью идемпотентности обработчика, дедупликации сообщений, транзакций в базе и атомарного подтверждения обработки. Обычно создают таблицу обработанных событий и выполняют операции в рамках одной транзакции, чтобы повторный ретрай не нарушал данные.
Что означают гарантии доставки вроде at-least-once и exactly-once?
at-least-once означает, что сообщение будет доставлено минимум один раз, но возможны дубликаты. exactly-once означает, что сообщение будет обработано ровно один раз. Достичь exactly-once сложнее и требует дополнительных механизмов. Большинство систем по умолчанию работают в режиме at-least-once.
Рейтинг:
1
Сложность:
8
Рейтинг:
5
Сложность:
8
Рейтинг:
5
Сложность:
7