在微服務(wù)應(yīng)用啟動(dòng)過程中,如何靈活設(shè)置Spring Boot應(yīng)用的端口號(hào)?下面列舉了部分使用方式:
一、在Application.yml或application.properties 配置文件中設(shè)置
這是比較常見的方式,可以保持多個(gè)實(shí)例使用統(tǒng)一的port。不足是,在開發(fā)、測(cè)試環(huán)境,可能需要在同一臺(tái)host上運(yùn)行一個(gè)服務(wù)的多個(gè)實(shí)例,這樣就會(huì)存在端口沖突了。
二、通過命令行參數(shù)傳遞屬性作為應(yīng)用程序參數(shù)
JAVA -jar <path/to/my/jar> --server.port=9023
通過--server.port 參數(shù)覆蓋application.yml 配置文件的端口號(hào)設(shè)置。
看下面的一個(gè)示例:
先采用application.yml 中配置的端口號(hào)(9022)啟動(dòng)一個(gè)微服務(wù)實(shí)例。
java -jar service-b-1.0-SNAPSHOT.jar
然后,通過--server.port 命令行參數(shù)啟動(dòng)一個(gè)新的微服務(wù)實(shí)例。
java -jar service-b-1.0-SNAPSHOT.jar --server.port=9023
如上圖所示,在Eureka 注冊(cè)中心有成功注冊(cè)了2個(gè)服務(wù)實(shí)例。
三、定義JVM系統(tǒng)屬性
和上一種方式比較接近,采用了JVM系統(tǒng)屬性的方式 -Dserver.port。
java -Dserver.port=9024 -jar <path/to/my/jar>
具體示例:
java -Dserver.port=9024 -jar service-b-1.0-SNAPSHOT.jar
以server.port=9024 端口注冊(cè)到eureka server,對(duì)外提供服務(wù)。
四、定義系統(tǒng)環(huán)境變量
以windows 系統(tǒng)為例,先定義需要的環(huán)境變量。
SET SERVER_PORT=9025
java -jar <path/to/my/jar>
具體示例:
set SERVER_PORT=9025
java -jar service-b-1.0-SNAPSHOT.jar
如果需要使用隨機(jī)端口分配,可以設(shè)置server.port=0 即可。