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

Какие плюсы и минусы микросервисной архитектуры

Плюсы:

  1. Масштабируемость – можно масштабировать отдельные сервисы под нагрузку.
  2. Гибкость – разные сервисы можно писать на разных языках/технологиях.
  3. Независимость – обновление одного сервиса не требует переделки всей системы.
  4. Отказоустойчивость – падение одного сервиса не приводит к краху всей системы.

Минусы:

  1. Сложность – требуется оркестрация, мониторинг, логирование.
  2. Задержки – межсервисные вызовы (HTTP/gRPC) медленнее локальных.
  3. Согласованность данных – сложно обеспечить транзакционность (нужен Saga, CQRS).
  4. DevOps-нагрузка – нужна автоматизация деплоя, CI/CD.

Пример:

java
// Микросервис UserService
@RestController
public class UserController {
    @GetMapping("/users/{id}")
    public User getUser(@PathVariable Long id) {
        return userRepository.findById(id);
    }
}
java
// Микросервис OrderService вызывает UserService через Feign
@FeignClient(name = "user-service")
public interface UserClient {
    @GetMapping("/users/{id}")
    User getUser(@PathVariable Long id);
}
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы