[英]Binding two different TaskSchedulers to a Spring Boot Application
[英]Spring boot application with two services on two different ports
我有一個帶有兩個服務的 Spring Boot 應用程序,但我需要在端口 8080 上運行一個,另一個在 8081 端口上運行。現在我正在使用 sts(Spring 工具套件)進行開發,並使用“作為 spring 啟動應用程序運行”選項運行該應用程序",所以我不知道在哪里更改服務器配置。 有人可以幫助我嗎?
您不能在兩個不同端口的同一個 Spring Boot 應用程序下運行兩個不同的服務。 如果需要,您可以將一項服務移至另一個 Spring Boot 應用程序。 但是兩個服務的端口號不會相同。
可以在您使用的application.properties
或application.yaml
配置文件上定義端口。
在application.properties
文件中,定義如下:
server.port=8090
或者,如果您使用的是application.yaml
配置,請將其定義如下:
server:
port: 8090
您可以在 application.properties 或 application.yml 中寫下一行
服務器端口=8080
您可以配置 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);
如果您使用 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/這是一篇好文章
當然。 你可以在spring boot項目的application.properties文件中通過為每個服務設置server.port=number來實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.