Встречается на собеседованиях • сегодня
Как сделать так, чтобы два микросервиса обращались к одной и той же БД
Использование общей БД для микросервисов - антипаттерн, так как нарушает принцип слабой связанности. Однако если это временное решение или специфический кейс, можно:
- Общий доступ через JDBC
Оба сервиса подключаются к одной БД с разными пользователями и правами:
java
// application.properties для Spring Boot
spring.datasource.url=jdbc:postgresql://localhost:5432/shared_db
spring.datasource.username=service1_user
spring.datasource.password=password123- Синхронизация через транзакции
Использовать@Transactionalи настроить изоляцию:
java
@Transactional(isolation = Isolation.SERIALIZABLE)
public void updateSharedData() { ... }- Event Sourcing (лучшая альтернатива)
Каждый сервис имеет свою БД, а изменения синхронизируются через события (Kafka, RabbitMQ).
Лучшие практики:
- Разделять схему БД на logical schemas
- Использовать разные пользователей с ограниченными правами
- В идеале - перейти к отдельным БД с синхронизацией через API/events

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