Встречается на собеседованиях • сегодня
Какие знаешь три шаблона проектирования связанных с микросервисом
1. **Circuit Breaker** - защищает систему от каскадных сбоев. При частых ошибках вызовов внешнего сервиса переключается в "разомкнутое" состояние, временно блокируя вызовы. Пример с Resilience4j:
```java
CircuitBreaker circuitBreaker = CircuitBreaker.ofDefaults("backendService");
Supplier decorated = CircuitBreaker
.decorateSupplier(circuitBreaker, backendService::call);
```
2. **API Gateway** - единая точка входа для клиентов, которая маршрутизирует запросы к соответствующим микросервисам, может агрегировать данные и обрабатывать аутентификацию.
3. **Saga** - управляет распределенными транзакциями через последовательность локальных транзакций с компенсирующими действиями при ошибках. Пример:
```java
// Saga шаги
1. OrderService.createOrder()
2. PaymentService.processPayment()
3. Если шаг 2 падает - OrderService.cancelOrder()
```

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы