Приложение Spring для загрузки с двумя службами на двух разных портах

У меня есть приложение весенней загрузки с двумя службами, но мне нужно запустить одну на порту 8080, а другую на 8081. Теперь я разрабатываю с помощью sts (набор инструментов Spring) и запускаю приложение с опцией «Запустить как приложение весенней загрузки». ", поэтому я не знаю, где изменить конфигурацию сервера. Кто-нибудь может мне помочь?

Проверьте этот дублированный сообщение. Вы можете сделать это через application.properties.

pbuzulan 07.03.2019 11:18

Я видел это, но мне нужно поставить одну службу на 8080, а другую на 8081 с тем же приложением.

Alessio Pascucci 07.03.2019 11:20

Возможный дубликат Как настроить порт для приложения Spring Boot

Mickael 07.03.2019 11:21

Обсуждается здесь: stackoverflow.com/questions/36357135/…

Karmakulov Kirill 15.09.2021 11:34
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
4
3 121
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Порт можно определить в файле конфигурации application.properties или application.yaml, который вы используете.

В файле application.properties определите его, как показано ниже:

server.port=8090

Или, если вы используете конфигурацию application.yaml, определите ее, как показано ниже:

server:
    port: 8090

Итак, если мне нужно получить доступ к двум разным портам, мне нужно запустить приложение на двух серверах, размещенных на двух разных портах?

Alessio Pascucci 07.03.2019 11:40

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

Madhu Bhat 07.03.2019 12:05

вы можете написать строку ниже в application.properties или application.yml

сервер.порт=8080

Конечно. Вы можете сделать это в файле application.properties проекта весенней загрузки, установив server.port=number для каждой службы.

Ответ принят как подходящий

Вы не можете запускать две разные службы в одном и том же приложении весенней загрузки в двух разных портах. Если вы хотите, вы можете переместить одну службу в другое приложение Spring Boot. Но номер порта не будет одинаковым для обеих служб.

вы можете настроить SprintBoot на поддержку двух портов. Обычный метод настройки — использовать application.properties или application.yaml как ответ @Madhu Bhat. В SprintBoot настроить другой код порта следующим образом:

создать соединитель

        int port = Integer.parseInt(probePort);
        Connector httpConnector = new Connector(HTTP_PROTOCOL);
        httpConnector.setPort(port);
        Http11NioProtocol handler = (Http11NioProtocol) httpConnector.getProtocolHandler();
        handler.setMaxThreads(10);
        handler.setMinSpareThreads(4);
        //handler.setAddress(InetAddress.getLocalHost());
        handler.setAddress(StringTool.getInetAddress());
        return httpConnector;

настроить коннектор на

((TomcatEmbeddedServletContainerFactory) container).addAdditionalTomcatConnectors(connector);

Но для этого нужно запускать два разных приложения на два разных порта?

Alessio Pascucci 07.03.2019 15:42

Если вы используете Docker (наиболее распространенное решение), вы можете добавить порт или его полный адрес в качестве переменной среды.

docker-compose.yml файл вот такой:

application1:
    image: 'application1:latest'
    build:
      context: ./
    container_name: application
    environment:
      - HOST-APP2=localhost:8082
    ports:
      - 8091:8080

application2:
    image: 'application2:latest'
    build:
      context: ./
    container_name: application
    environment:
      - HOST-APP1=localhost:8081
    ports:
      - 8092:8080

или прямо в Dockerfile при сборке контейнеров

посмотрите здесь: https://vsupalov.com/docker-arg-env-variable-guide/ это хорошая статья

Другие вопросы по теме