Sobes.tech
Назад к вопросам
Junior — Middle
65

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

Ответ от нейросети

sobes.tech AI

В микросервисных системах часто применяются следующие шаблоны проектирования:

  • API Gateway — единая точка входа для всех клиентов, которая маршрутизирует запросы к соответствующим микросервисам, выполняет аутентификацию, агрегацию данных и другие функции.
  • Circuit Breaker — предотвращает каскадные отказы, отключая вызовы к неработающим сервисам и давая им время восстановиться.
  • Service Discovery — динамическое обнаружение адресов микросервисов в распределённой системе.
  • Event Sourcing — хранение состояния системы через последовательность событий, что облегчает восстановление и аудит.
  • CQRS (Command Query Responsibility Segregation) — разделение операций изменения данных и чтения для повышения производительности и масштабируемости.
  • Bulkhead — изоляция ресурсов для предотвращения распространения сбоев между микросервисами.

Пример использования Circuit Breaker на Java с библиотекой Resilience4j:

CircuitBreaker circuitBreaker = CircuitBreaker.ofDefaults("myService");
Supplier<String> decoratedSupplier = CircuitBreaker
    .decorateSupplier(circuitBreaker, () -> remoteService.call());

Try<String> result = Try.ofSupplier(decoratedSupplier);
if (result.isSuccess()) {
    System.out.println("Response: " + result.get());
} else {
    System.out.println("Service unavailable, fallback logic here");
}