在微服务项目中,横向拓展需要启动多个服务,每次启动指定端口号很麻烦,加上以下配置,只需要配置一个端口范围即可实现动态端口。
启动类
@SpringBootApplication
public class CommoditysApplication {
@Value("${propsocpr}")
private String propsocpr;
public static void main(String[] args) {
SpringApplication.run(CommoditysApplication.class, args);
}
@Bean
public TomcatServletWebServerFactory servletWebServerFactory(){
String[] split = propsocpr.split("-");
for (int i = Integer.parseInt(split[0]); i <= Integer.parseInt(split[1]); i++) {
try {
new Socket(InetAddress.getByName("127.0.0.1"),i);
} catch (IOException e) {
System.out.println("启动成功,端口===="+i);
return new TomcatServletWebServerFactory(i);
}
}
System.out.println("范围内端口已耗尽====");
return null;
}
}
配置端口范围,可在nacos中动态配置
propsocpr: 5080-5089