Микросервисная группировка модулей
Я занимаюсь разработкой системы управления сотрудниками и следую архитектуре в стиле микросервиса. Первоначально я создал ERD и разработал несколько основных таблиц обслуживания, таких как отдел, проект, должность и т. Д.
Мой вопрос заключается в том, должен ли я создать отдельный сервис для каждой из этих таблиц? или я должен создать единую службу под названием главное обслуживание для всех этих таблиц?
Пожалуйста, помогите мне решить. Заранее спасибо.
1 ответ
Второй принцип SOA гласит:
Услуги автономные
Это означает, что в максимально возможной степени не должно быть горизонтальной связи между службами. Если взять конкретный пример из вашего вопроса, служба Департамента не должна быть связана со службой проектов.
Однако, моделируя данные об отделах и проектах в одной базе данных, вы уже вводите связь между ними.
Тогда, чтобы отделить ваши сервисы, вы должны предоставить каждому сервису свою собственную базу данных. Сервисы тогда должны были бы общаться через какой-то другой механизм для обмена данными друг с другом, а не через базу данных.
Однако этот подход вносит сложность в ваше решение. Это называется премией микросервиса. Вы должны спросить себя, стоит ли эта цена выгоды от подхода, основанного на микросервисе, по крайней мере, для начала.