2015-12-22 5 views
2

Например, у меня есть проект, который имеет 4 микросервиса: client-web, admin-web, client-api, admin-api.Как разделить код между микросервисами?

Эти четыре микросервиса должны делиться одним кодом БД, должен ли я сделать код БД как подмодуль git и использовать его в каждом микросервисе?

делает это против принципа микрообслуживания?

+0

Вероятно, это зависит от используемого языка, решение которого работает лучше всего, и все же это может быть очень основано на мнениях. Но я не вижу, как совместное использование кода будет связано с принципом микросервиса. В конце концов, каждый из них должен подключиться к базе данных, так зачем вам дублировать код? – GolezTrol

+0

Создав библиотеку? – jgauffin

+0

4 микросервиса по имени больше напоминают архитектуру клиентского сервера, а не микросервисы. Как правило, каждая микросервис спроектирована с собственным кодом доступа к сущностям/БД. Может быть, у вашего кода DB есть микросервис сам по себе? – longday

ответ

3
  1. Создать библиотеку.
  2. Верните библиотеку с семантическим управлением версиями и создайте пакет, используя функциональность управления пакетами вашей среды (например, Nuget, если вы на .NET).
  3. Включите пакет в качестве зависимости в микросервисах.
2

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

Я думаю, что лучший подход - сделать его микросервисом самостоятельно.

+0

«Если вам нужно внести изменения в библиотеку, возможно, вам придется изменить все ваши сервисы», да, извините, но нет, поэтому это называется «общей» библиотекой, а не «статикой»;) – nonchip

+1

Я думаю, что это всегда плохая идея иметь «персистентность» микросервисов. Это анти-метод микросервисов, который приводит к монолиту микросервисов. –

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