Ran*_*ndy 1 java spring spring-boot spring-cloud spring-cloud-netflix
我正在运行带有Eureka服务器的Spring Cloud,我想让我的应用程序根据使用的端口和给定的范围选择端口。
例如,我希望我的第一个实例从端口8010开始,第二个实例从8011等开始。
在application.properties中,您可以设置一个随机端口(server.port=0),可以设置一个静态端口(server.port=8080),但是我想知道如何使spring在一个范围内设置一个随机端口,或者根据使用的端口选择一个端口。
例如,类似这样的方法将起作用:
server.port.random=8080-8090
Run Code Online (Sandbox Code Playgroud)
但这显然不存在。
我也知道可以添加一些逻辑,例如,我曾经使用过:
eureka.instance.instance-id=${spring.application.name}:${random.int}
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何使两个数字之间的随机性起作用。此外,随机变量仍有可能连续两次设置相同的端口,从而使服务器无法启动实例。
有没有一种方法可以在Spring application.properties中动态设置端口?
可以在给定范围内指定一个随机端口。在您的属性文件中。
server.port=${random.int[8080,8090]}
仍然有可能发生碰撞,但是如果您在该范围内有足够的填充,则可以限制这种情况的发生。
但是,更优选的方法是将端口指定为环境变量。
java -jar app.jar --SERVER_PORT=8080
java -jar app.jar --SERVER_PORT=8081
| 归档时间: |
|
| 查看次数: |
970 次 |
| 最近记录: |