упаковка общего кода в приложении микросервиса - PullRequest
0 голосов
/ 23 января 2020

Я собираюсь начать работу над микросервисным проектом с общей базой данных postgres, к которой обращается hibernate. Я заинтересован в . Каков наилучший способ упаковки базы кода?

Несколько микросервисов получат доступ к базе данных, что может привести к тому, что один или несколько микросервисов захотят получить доступ к одному и тому же java объекту DTO.

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

Мой обычный метод предпочтения - создать общий файл JAR для кодирования на монтируемом коде, который необходимо поддерживать.

Есть ли какие-либо уроки по этому вопросу?

По тем же вопросам есть общие константы, которые также должны быть разделены

1 Ответ

1 голос
/ 23 января 2020

Микросервисы не разделяют базы данных или, в более общем смысле:

Микросервисы не разделяют общее состояние.

Существует три возможных сценария ios:

one: Вы пытаетесь разделить один небольшой вариант использования. Тогда вам потребуется только один микросервис.

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

three: Вы пытаетесь управлять несколькими различными вариантами использования в одной базе данных. Тогда у вас будет выделенная база данных для каждой из ваших услуг.

На самом деле, даже если вы делаете two , вы все равно можете сделать three , так как ваши микросервисы должны оставаться функциональный (отзывчивый и, по крайней мере, частично полезный), даже если служба, используемая всеми из них, по какой-то причине не работает.

Что касается общих констант: их, вероятно, необходимо избыточно упаковывать в каждую микросервисную службу. Вы можете поделиться общей библиотекой (читай: артефакт maven).

...