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

Как работать с БД в микросервисной архитектуре

В микросервисной архитектуре каждый сервис должен иметь свою изолированную БД (принцип bounded context). Это исключает прямое соединение между БД сервисов. Основные подходы:

  1. Собственная БД на сервис
    Каждый микросервис управляет своей схемой и данными. Пример:
    java
    @Entity
    @Table(name = "orders") // Сервис заказов
    public class Order { ... }
  1. Синхронизация через события
    Используется Event Sourcing или паттерн «публикация/подписка» (Kafka, RabbitMQ). Пример:

    java
    @Transactional
    public void createOrder(Order order) {
        orderRepository.save(order);
        eventPublisher.publish(new OrderCreatedEvent(order.getId()));
    }
  2. API Gateway для агрегации данных
    Клиент получает данные через API Gateway, который собирает их из нескольких сервисов.

  3. CQRS
    Разделение на команды (запись) и запросы (чтение), часто с отдельной БД для чтения.

Важно: избегайте распределенных транзакций (2PC), используйте eventual consistency и компенсирующие транзакции.

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

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

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

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