Специализация
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 в телеграм
Что делают аннотации @Transactional и @Retryable?
@Transactional оборачивает метод в транзакцию: BEGIN перед выполнением, COMMIT при успехе, ROLLBACK при исключении. @Retryable (из Spring Retry) автоматически повторяет вызов метода при указанном типе исключений, с настройками количества попыток, задержек и backoff-политики.
Как реализовать retry-логику для отправки писем?
Retry-логику можно реализовать вручную с помощью счётчика попыток и задержек между ними либо использовать библиотеки типа Polly. Также можно использовать отложенные задачи через очередь или планировщик, обрабатывающий письма с ошибками через определённое время.
Расскажите про механизмы повтора (retry) и циркуйтера (circuit breaker)?
Retry автоматически повторяет неудачный вызов другого сервиса, предполагая, что ошибка временная (например, сетевой сбой). Circuit Breaker действует как автоматический предохранитель: если сервис постоянно недоступен, он прекращает все попытки вызова на некоторое время, чтобы избежать перегрузки и дать сервису восстановиться. Вместе они защищают систему от каскадных отказов.
Как реализовать retry-логику при ошибках запроса?
Retry-логика — это повтор запроса при временных ошибках (например, нестабильная сеть или 5xx). Обычно задают максимальное число попыток, задержку между ними и условия, при которых можно повторять. Хорошая практика — использовать exponential backoff и добавить jitter, чтобы много клиентов не “стреляли” одновременно. Важно различать ошибки: 4xx чаще не ретраят (кроме 429), а запросы с изменением данных повторяют только если это безопасно.
Какие стратегии retry вы знаете и как избежать повторной обработки данных?
Retry применяют при временных ошибках и всегда ограничивают по количеству и времени. Используют фиксированную задержку, exponential backoff и jitter. Чтобы избежать повторной обработки, операции делают идемпотентными. Также применяют дедупликацию по ключам и хранение состояния обработки. Без этих мер retry быстро приводит к дубликатам и перегрузке системы.
Рейтинг:
2
Сложность:
6
Рейтинг:
1
Сложность:
6
Рейтинг:
2
Сложность:
7
Рейтинг:
4
Сложность:
6
Рейтинг:
5
Сложность:
7