я, допустим, 2 сервиса с postgres, которые общаются по gRPC и используют свои отдельные базы. Сейчас же я хотел связать их, но застрял на таком вопросе: можно ли сделать базу одну, но для всех микросервисов, чтобы они туда ходили и (самое главное) могли брать данные из сферы чужих микросервисов? К примеру ”user” и ”balance” сервисы, у которых были отдельные таблицы “users” для balance’а (которая хранила грубо говоря только 2 уникальных поля пользователя) и “users” для сервиса user’а (это сейчас). Так вот вопрос - хорошо ли будет если я сделаю объединение баз и эти сервисы будут ходить в одну таблицу “users”? Получается сервисам не нужно будет ходить друг ко другу за некой информацией и я смогу уменьшить кол-во данных в базе (сейчас другой сервис дублирует некоторую информацию ради производительности). Но главный вопрос в этом - не нарушит ли это всю идею микросервисов, где каждый микросервис полностью независим от другого?
Нарушит. И solid нарушит
Так делать плохая идея. При изменении схемы бд для одного сервиса придется делать поддержку этого изменения во всех сервисах.
Обсуждают сегодня