Встречается на собеседованиях • сегодня

Приходилось ли использовать паттерны для обработки ошибок при взаимодействии между микросервисами

Да, использовал несколько подходов:

  1. Circuit Breaker (Hystrix/Resilience4j) - предотвращает каскадные сбои:
java
@CircuitBreaker(name="serviceA", fallbackMethod="fallback")
public String callServiceA() {
    return restTemplate.getForObject("/api", String.class);
}

public String fallback(Exception e) {
return "Fallback response";
}

text

2. **Retry** - для временных сбоев:
```java
@Retry(name="serviceB", fallbackMethod="fallback")
public String callServiceB() {
    // вызов сервиса
}
  1. Dead Letter Queue - для асинхронных сценариев, когда сообщения с ошибками отправляются в отдельную очередь.

  2. Saga Pattern - для распределенных транзакций, где компенсирующие транзакции откатывают изменения при ошибках.

Для синхронных вызовов также важно корректно обрабатывать HTTP статусы (например, 429 Too Many Requests) и реализовывать экспоненциальную задержку между повторами.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы