Является ли использование основного проекта, который разделяет общие классы и свойства для микросервисов, хорошей практикой? - PullRequest
0 голосов
/ 25 сентября 2019

Существует простой Java-проект core, который имеет служебные классы и конфигурации, которые напрямую импортируются в микросервисы (Spring Boot).В этом случае api и admin.

Вот настройка build.bradle для отображения структуры проекта.

project(':core') {
    dependencies {
    }
}

project(':api') {
    apply plugin: 'war'
    build.dependsOn ':core:build'
    dependencies {
        compile project(':core')
    }
}

project(':admin') {
    apply plugin: 'war'
    build.dependsOn ':core:build'
    dependencies {
        compile project(':core')
    }
}

Я думаю, что микросервисы должны быть независимы друг от друга, так что этот проект core может иметь некоторую потенциальную проблему в будущем.Например, у нас есть свойства источника данных в проекте core.Что если для нового микросервиса требуется другой источник данных?Хотя мы можем переопределить свойства core, используя другой файл свойств и профиль, я думаю, что это только усложняет ненужные настройки.Может быть, даже больше, если необходимо изменить общие классы.

Является ли целесообразным иметь базовый проект, который разделяет общие классы и свойства для микросервисов?

1 Ответ

1 голос
/ 25 сентября 2019

Я думаю, что это совершенно нормально.Думайте об этом основном модуле как о сторонней зависимости, которую вы подключили к своим микросервисам.Чтобы справиться с потенциальными проблемами, когда основной модуль будет иметь критические изменения, вы должны сделать модуль api / admin в зависимости от конкретной версии основного модуля, поэтому вместо зависимости от com.myapp.core:RELEASE используйте com.myapp.core:1.2.4 и слегка перенесите ваши вышестоящие модули всвежая версия ядра.В этом случае у вас не будет никаких проблем, и ваши микросервисы будут по-прежнему независимы друг от друга.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...