Обычные практики:
- Отдельные микросервисы как отдельный проект в intellij-идее, а не как отдельный модуль
- Отдельный репозиторий для каждого микросервисного проекта
Вынужна степень изоляции на уровне проекта, потому что вам нужно будет создать конвейер CI / CD для каждого микросервиса, что является еще одной характеристикой микросервисной архитектуры.Если эти сервисы объединить в один толстый проект, будет трудно предоставить разные версии библиотечных зависимостей для разных микросервисов (даже эти сервисы разделяются контейнером Docker при развертывании).Каждая команда, работающая над разными микросервисами, не должна беспокоиться о зависимости проекта от другого микросервиса.Хотя каждый микросервис является частью большого составного приложения, с точки зрения разработчика, важно рассматривать каждый сервис как независимую единицу кода.Это позволяет развертывать более новые версии сервисов, не нарушая работу приложения.Конвейеры CI / CD должны быть спроектированы таким образом, чтобы использовать преимущества независимого управления версиями.
Существует слишком много причин, выходящих за рамки обсуждения в одном ответе, почему вам нужно иметь разные проекты на микросервис, но сейчас перейдем кдругой проект, и вы обнаружите, как только вы попадаете в область микросервисов.