⌨️
Микросервисы: подборка вопросов с собеседования1. Каковы ключевые характеристики микросервисов?
- Децентрализованное управление данными
- Сервисы развёртываются независимо друг от друга
- Проектирование на основе предметной области (DDD)
- Лёгкое взаимодействие (например, REST, gRPC)
- Изоляция сбоев
- Удобны для непрерывной доставки
2. Чем микросервисы отличаются от монолитной архитектуры?
Монолит: единая кодовая база, жёстко связанные компоненты, сложно масштабировать.
Микросервисы: множество сервисов, слабо связанные, развёртываются и масштабируются независимо.
3. Каковы основные преимущества использования микросервисов?
- Лучшая масштабируемость
- Более быстрое выведение продукта на рынок
- Независимые развёртывания
- Лучшая устойчивость к сбоям
- Возможность использовать разные языки и технологии
4. Какие есть сложности при работе с микросервисами?
- Сложность управления распределёнными системами
- Задержки в сети и накладные расходы на коммуникацию
- Согласованность данных
- Отладка и мониторинг
- Развёртывание и оркестрация
5. Как микросервисы обмениваются данными?
Синхронно: через REST, gRPC
Асинхронно: через очереди сообщений (RabbitMQ, Kafka)
6. Что такое service discovery в микросервисах?
Это механизм, с помощью которого сервисы находят друг друга в сети. Применяются инструменты вроде Consul, Eureka, DNS Kubernetes.
7. Что такое API Gateway и зачем он нужен?
API Gateway — это единая точка входа в систему. Он отвечает за маршрутизацию, безопасность, ограничение частоты запросов и агрегацию ответов от разных сервисов. Примеры: Kong, Zuul, NGINX, Spring Cloud Gateway.
8. Как в микросервисах управляют данными?
Каждый сервис использует свою отдельную базу данных (подход “одна база на сервис”). Для согласованности применяются событийная архитектура или паттерн саги.
9. Что такое паттерн Saga?
Saga — это последовательность локальных транзакций. Если одна из них завершается с ошибкой, запускаются компенсирующие действия для отката изменений.
10. Какие инструменты используют для разработки микросервисов?Языки: Java (Spring Boot), Node.js, Go, Python
Сборка: Maven, Gradle
Контейнеризация: Docker
Оркестрация: Kubernetes
tags: #собеседование📱
Java Developer | Чат