#spring-boot
#весенняя загрузка
Вопрос:
Как запустить несколько экземпляров одного и того же профиля на одном сервере (ОС) в приложении Spring boot?
Комментарии:
1. Просто сделать это? В чем проблема с двойным запуском вашего приложения с использованием одного и того же профиля? Указывает ли ваш профиль что-то, что нельзя использовать дважды, например, определенный номер порта для прослушивания или что-то в этом роде? — ha. Увидел ответ только после того, как я опубликовал это. @Nesrin полностью разделял мои соображения о порте.
Ответ №1:
Для запуска нескольких экземпляров одного и того же профиля сервиса
- удалите свойство из профиля в yml (или properties) file -> server.port (это в случае использования удаленной конфигурации, доступ к которой осуществляется через configuration server)
- при запуске war (или jar) задайте свойства port и profile в командной строке следующим образом
java -jar -Dserver.port=7012 -Dspring.profiles.active=производство demo-0.0.1-SNAPSHOT.jar
java -jar -Dserver.port=7011 -Dspring.profiles.active=производство demo-0.0.1-SNAPSHOT.jar
Комментарии:
1. Спасибо, так как насчет того, чтобы сделать то же самое из eclipse во время разработки
2. из конфигураций передаются те же параметры: 1- перейдите к запуску конфигураций 2- откройте вкладку аргументов 3- добавьте строку: -Dserver.port=7011 -Dspring.profiles.active=production
3. Я не думаю, что вам нужно удалять свойство из вашего профиля. Свойство Java должно переопределять то, что находится в вашем профиле, в соответствии с внешней конфигурацией
4. Да, @Steve , но при использовании configuration server в случае микросервисной архитектуры его лучше удалить, иногда это плохо работает
5. @Nesrin — Этот парень упоминал микросервисную архитектуру? Есть причина, по которой иерархия расположений свойств Spring является такой, какая она есть, и переопределение свойств на разных уровнях имеет смысл. Почему бы не установить значимое значение по умолчанию в вашем профиле, чтобы вам не приходилось устанавливать системное свойство, если вам это не нужно? Каскадные свойства — очевидный выигрыш по замыслу.
Ответ №2:
Если вы хотите запустить несколько экземпляров вашего проекта в sts (spring tool suite), выполните следующие действия
- измените server.port =0 (это заставляет приложение запускаться на случайном порту) в application.properties или yaml
- откройте Boot bashboard, запустите экземпляр один раз, он начнет работать на случайном порту
- щелкните правой кнопкой мыши на этом объекте, выберите дублировать конфигурацию, это создаст новый экземпляр на панели управления загрузкой
- запустите новый экземпляр, который будет запущен на новом случайном порту
вы можете создать столько дубликатов экземпляров, сколько захотите