Spring Boot - 在不同的连接上慢启动应用程序

时间:2016-06-10 22:42:56

标签: java spring spring-boot

我在使用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运行它

2 个答案:

答案 0 :(得分:2)

我遇到了一个非常类似的问题。一个非常简单的Spring Boot应用程序在办公室网络上启动大约需要45秒,在家庭网络上大约需要10秒钟。

似乎延迟识别我的外部IP地址,但运行以下命令将其修复到我的Mac上。

scutil --set HostName "localhost"

答案 1 :(得分:0)

@chrylis是正确的,这是一个DNS查找问题。通过在我的工作互联网上更改我的DNS解析设置,启动时间无限提升。

现在我想知道为什么在DNS解析器速度慢的情况下Spring启动速度会慢,或者可能是MacOSX问题?