@The3fon

Как правильно сохранять данные из микросервисов в единую БД?

Есть архитектура:

1) Микросервис на Flask
2) Микросервис с БД
3) Микросервис на python
4) Микросервис на go
5) Брокер очередей

Веб приложение (Flask) используется для отображения информации из БД, в которую складируют данные каждый микросервис и само web приложение. Как правильно и менее ресурсоемко (для меня) сделать работу с данными из БД:

1) В каждом микросервисе подключить ORM и с помощью него сохранять или читать данные из БД (слишком трудозатратно, требуется поддержание схемы БД на каждом микросервисе в актуальном виде),
2) В каждом микросервисе сохранять данные в БД с помощью сырых запросов (кроме FLASK, там алхимия),
3) Во Flask сделать API методы, для сохранения данных в БД, из микросервисов обращаться к БД через это API,
4) Поднять для обращения к БД еще один микросервис с FastAPI и сделать на нем API для всех запросов,
5) Сделать еще один микросервис для общения с БД, но передавать данные в него через брокер.
  • Вопрос задан
  • 179 просмотров
Пригласить эксперта
Ответы на вопрос 1
Если ваши микросервисы будут иметь общее состояние в одной БД, и работать с этим состоянием через СУБД, то это не микросервисы, а монолит. Вам лишь будет казаться, что это микросервисы. Тем более что вы сказали, что вам важно следить за схемой данных, видимо она не зафиксирована один раз на веки вечные (и это нормально).

Либо разносите данные по разным БД для разных сервисов, либо обращайтесь к этим данным через один сервис (видимо это ваш 5-й вариант, только я не совсем понял что вы имеете в виду под "брокером").
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы