Я планирую использовать микросервисную архитектуру в своем проекте с node-express, и этот термин для меня новый.
Я исследовал это и узнал, что каждый независимый модуль можно рассматривать как микросервис с отдельной базой данных, в настоящее время мой проект имеет одну и ту же базу данных для всего модуля, как показано ниже:
Текущая архитектура:
Все модули (студент, школа, факультеты) используют одну и ту же базу данных, и нам всегда нужны данные таблицы одного модуля в другом модуле.
Теперь проблема начинается так, что у нас должна быть отдельная БД, разве мы не можем сделать три виртуальных разных БД в одной БД?
Хорошо, если я создам три отдельные БД, поэтому я могу сопоставить одну микросервисную БД с другой микрослужбой для выборки и вставки данных, и скорость выполнения все равно будет увеличена (поскольку я читал, что выполнение отдельных мс с БД повышает скорость выполнения) по сравнению с текущим сценарием где я делюсь одной и той же БД и извлекаю данные из таблиц во всех модулях?
У меня также есть один вопрос: большие продукты, такие как OLA, Netflix, Twitter, как они справляются с микросервисами, если у них разные БД, и когда они хотят сопоставить одну БД микросервиса с другим микросервисом?
Пожалуйста, помогите мне.
Вы хотите сказать, что я должен отделять только микросервисы, но у них должна быть одна БД, верно? если это так, то мы не следуем концепции микросервисов, тогда
См. этот ответ: stackoverflow.com/a/45421864/7970942
спасибо, у меня появилась идея, теперь вы можете опубликовать этот ответ, который мне помог





Микросервисы, также известные как архитектура микросервисов, представляют собой архитектурный стиль, который структурирует приложение как набор сервисов, которые
Высокая ремонтопригодность и возможность тестирования Слабо связанный Независимо развертываемый Организовано вокруг бизнес-возможностей. Архитектура микросервисов обеспечивает непрерывную доставку/развертывание больших и сложных приложений. Это также позволяет организации развивать свой технологический стек.
Из приведенного выше объяснения инфраструктура предназначена для создания в разных разделах, чтобы, когда часть всей архитектуры необходимо масштабировать, это можно было сделать независимо. Нам не нужно мешать другим службам. Также, если служба не работает все приложение не падает. Из вашего примера, если вы создаете виртуальную базу данных в той же базе данных, и если база данных выйдет из строя, все приложение будет отключено. Принимая во внимание, что если вы развертываете базы данных отдельно, если школьная база данных выходит из строя, другая база данных будет работать с работающими службами. А также сервисы не должны использовать базы данных других сервисов.
вы сказали services should not use databases from other services, но в моем случае, если я сделаю три отдельных модуля с отдельной БД, мне также потребуется взаимосвязь БД, потому что мой текущий проект зависит от разных таблиц разных сервисов.
если ваши службы зависят от других баз данных из разных служб, микросервисная архитектура не достигается. Попробуйте как-то разделить сервисы. Если это невозможно, то в собственном сервисе. Сервисы — это бизнес-логика, которая может быть полностью разделена и взаимодействовать друг с другом через общий язык, такой как json, очень редко.
Я думаю, что нет необходимости иметь разные базы данных для всех этих модулей, а лучше иметь каждый свой собственный REST API, который взаимодействует с одной и той же базой данных.
См. этот ответ: stackoverflow.com/a/45421864/7970942
Надеюсь, это поможет! :)
Я думаю, что нет необходимости иметь разные базы данных для всех этих модулей, а лучше иметь каждый свой собственный REST API, который взаимодействует с одной и той же базой данных.