Реклама

Паттерны отказоустойчивости

#Паттерны #Разбираю #Retry #Deadlines #Rate
Паттерны отказоустойчивости

Разбираю 4 паттерна отказоустойчивости: Retry, Deadlines, Rate Limiting и Circuit Breaker. Не только теория, для каждого паттерна показываю реальный код на Go, который его реализует и схемы которые объясняют механику на пальцах. Читать далее

Привет. В этой статье я расскажу какие бывают паттерны отказоустойчивости. Всего их 6, но я расскажу про 4 вида: Retry, Deadline, Rate Limiter, Circuit Breaker. Начнем по порядку.

Retry

Сначала скажу, что сеть максимальна не стабильна и полагаться на успешные операции не вариант. При выполнении какого либо запроса, может быть сетевая ошибка, обрыв, дроп пакета, недоступность ресурса. Чаще всего такие проблемы можно решить обычным повтором запроса.

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