我在使用Spring Boot应用程序时遇到了一些奇怪的现象。
当我连接到WIFI A(我的家庭网络)或完全断开互联网连接时,应用程序会在6秒内启动。
当我连接到WIFI B(我的工作网络)时,应用程序需要1.5分钟才能启动。
这是一个简单的Hello,世界!弹簧应用。主要类看起来像这样:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
System.out.println("START := " + System.currentTimeMillis());
SpringApplication.run(Application.class, args);
System.out.println("STOP := " + System.currentTimeMillis());
}
}
我看到START时间戳以大致相同的速度打印,因此它必须是SpringApplication.run。这是一个裸类,所以没有弹簧配置。为什么WIFI连接的变化会导致这种延迟开始?我在Mac OSX上使用mvn spring-boot:run
运行它
答案 0 :(得分:2)
我遇到了一个非常类似的问题。一个非常简单的Spring Boot应用程序在办公室网络上启动大约需要45秒,在家庭网络上大约需要10秒钟。
似乎延迟识别我的外部IP地址,但运行以下命令将其修复到我的Mac上。
scutil --set HostName "localhost"
答案 1 :(得分:0)
@chrylis是正确的,这是一个DNS查找问题。通过在我的工作互联网上更改我的DNS解析设置,启动时间无限提升。
现在我想知道为什么在DNS解析器速度慢的情况下Spring启动速度会慢,或者可能是MacOSX问题?