2016-04-16 5 views
1

Я разрабатываю систему управления сотрудниками и следую за архитектурой в стиле микросервиса. Вначале я создал ERD и разработал несколько основных таблиц обслуживания, таких как Department, Project, Position и т. Д.Микросервисная группировка модулей

Мой вопрос: мне нужно создать единую услугу для каждой из этих таблиц? или я должен создать единую службу, называемую основным обслуживанием для всех этих таблиц?

Пожалуйста, помогите мне решить. Заранее спасибо.

+0

Это очень абстрактный вопрос. Вы просите шаблон дизайна для своего сценария? Не могли бы вы поставить вопрос более конкретным? – totoro

+0

Я хотел бы знать, какая была бы лучшая практика, например, у меня есть 100 таблиц, которые не являются частью транзакции, но она есть для операций CRUD, означает ли это, что мне нужно создать 100 микросервисов? – fuzzy28

+0

Я не знаком с термином, таблицей обслуживания. Это таблица, которая не является таблицей поиска, а скорее таблицей, которая фактически имеет значимые значения домена? –

ответ

3

Второй TENNET СОА гласит:

услуги являются autonomous

Что это означает, что как можно больше, не должно быть никакой горизонтальной связи между услугами. Взяв конкретный пример из вашего вопроса, служба Департамента не должна быть связана с службой проектов.

Однако, моделируя данные по департаментам и проектам в рамках единой базы данных, вы уже вводите связь между ними.

Чтобы разделить ваши услуги, вы должны предоставить каждой службе свою собственную базу данных. Затем услуги должны были бы взаимодействовать через какой-то другой механизм для обмена данными друг с другом, а не через базу данных.

Однако этот подход вводит сложность в ваше решение. Это известно как microservice premium. Вы должны спросить себя, стоит ли это стоить в пользу подхода на основе микросервиса, по крайней мере, для начала.

+0

Спасибо за вход, теперь у меня есть идея, что мне делать с моим вопросом. – fuzzy28

Смежные вопросы