Паттерны обработки ошибок в микросервисной архитектуре
Узнал пару недель назад, что почти все стандартные операции обозваны паттернами:
- Timeout: не надо ждать ответа бесконечно.
- Deadline: вместо относительного таймаута делать абсолютный, чтобы цепочка вызовов работала адекватно. См. также про токены отмены.
- Retry: можно тупо попробовать еще раз.
- Circuit Breaker: вставляем прокси перед целевым сервисом, считаем ошибочные запросы. Если их много, то даем ошибку сразу, не спрашивая целевой, в течение какого-то периода.
- Fallback: если не получили ответ, придумываем его сами.
А если копнуть глубже, то паттернов устойчивости гораздо больше.
Комментарии