gpt4 book ai didi

Spring Boot应用程序实际上在端口0上运行,而不是随机运行

转载 作者:行者123 更新时间:2023-12-04 03:35:41 25 4
gpt4 key购买 nike

我的application.properties文件包含

server.port=0

应该由spring boot捕获并将其设置为随机端口。

相反,它实际上是在端口0上启动它,甚至在spring日志中也是如此:
01/Mar/2019 12:50:43,600- TomcatEmbeddedServletContainer: Tomcat initialized with port(s): 0 (http)

Eureka将其视为“向上”服务,并提供了该服务的链接( localhost:0/info),单击该链接会给我的浏览器“ ERR_ADDRESS_INVALID”,因为它的端口无效。

应用正在运行以向Eureka发送心跳,但是为什么spring不会将其设置为随机端口号?

是否有任何可以防止随机发生的设置?如果是这样,如何取消它们?

编辑: server.port = 0的任何新启动应用程序都是随机的,它仅对具有很多依赖项的现有spring boot应用程序不起作用

最佳答案

它实际上并没有在端口0上启动它,而是在随机端口上启动了它。
在您的eureka服务器中,您将看到它在端口0中,但是如果您不单击鼠标就将其放在顶部,则会在浏览器栏中看到该端口是不同的。

在日志中显示:

INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 0 (http)

但后来更改了它:
INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 64039 (http) with context path ''
INFO o.s.c.n.e.s.EurekaAutoServiceRegistration - Updating port to 64039

因此,如果彼此之间无法通信,那是因为在每个以随机端口开头的微服务中,都必须在 application.yml中配置一个 preferIpAddress来通过ip而不是通过主机名来查找它:
eureka:
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://localhost:portServer/eureka/
instance:
preferIpAddress: true

关于Spring Boot应用程序实际上在端口0上运行,而不是随机运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54950710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com