Spring boot запускает несколько экземпляров одного и того же профиля в сервисе

#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), выполните следующие действия

  1. измените server.port =0 (это заставляет приложение запускаться на случайном порту) в application.properties или yaml
  2. откройте Boot bashboard, запустите экземпляр один раз, он начнет работать на случайном порту
  3. щелкните правой кнопкой мыши на этом объекте, выберите дублировать конфигурацию, это создаст новый экземпляр на панели управления загрузкой
  4. запустите новый экземпляр, который будет запущен на новом случайном порту

вы можете создать столько дубликатов экземпляров, сколько захотите