中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring boot應用啟動后首次訪問很慢怎么解決

發布時間:2021-06-23 13:55:10 來源:億速云 閱讀:614 作者:chen 欄目:開發技術

這篇文章主要介紹“Spring boot應用啟動后首次訪問很慢怎么解決”,在日常操作中,相信很多人在Spring boot應用啟動后首次訪問很慢怎么解決問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Spring boot應用啟動后首次訪問很慢怎么解決”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Spring boot應用在ECS服務器上啟動后首次訪問很慢的問題

環境:

  • CentOS7

  • JDK1.8

  • MYSQL8

  • 應用是Spring boot框架的(內嵌式tomcat)jar文件

問題描述:

通過命令:nohup java -jar XXXX.jar & 啟動項目后瀏覽器訪問響應十分的緩慢,網頁圖片和css等靜態資源加載的十分緩慢(網站登錄更是需要好幾分鐘才能完全加載完畢)。

然后在Google瀏覽器搜索了一下(已翻墻),搜索需用英文,類似問題看來不是個例呀,甚至JDK bug列表匯中就有相似的bug,如JDK-6521844 : SecureRandom hangs on Linux Systems,但這些bug都標記為fixed。但明顯沒有完全fix掉啊。然后繼續找,原來

Avoiding JVM Delays Caused by Random Number Generation

正好記錄了這個隨機數生成慢的原因和解決方案。Java隨機數生成依賴熵源(Entropy Source),默認的阻塞型的 /dev/random熵源可能導致阻塞,而換一個非阻塞的 /dev/urandom的熵源就可以了。

進入你的JAVA_HOME的jre目錄下找到并vim編輯這個文件:

$JAVA_HOME/jre/lib/security/java.security

找到:

securerandom.source=file:/dev/random 這一行

改之前:

securerandom.source=file:/dev/random

改為:

securerandom.source=file:/dev/urandom

然后保存修改就OK了!

Spring boot靜態資源訪問太慢

Spring boot應用啟動后首次訪問很慢怎么解決

產生的問題:

spring boot 啟動的服務靜態資源非常慢,慢到無法忍受。

排查過程 一

1. 在filter 中記錄請求時間 ,得到某些靜態資源居然600ms,但是主要問題不在這里,是客戶端的連接被阻塞了。如上圖

2. 然后然后禁用filter(直接spring boot static) 返回

3. 結果還是很慢

排查過程 二

1. 開啟客戶端資源 GZIP

2. 手動設置cache-contro

結果還是很慢,我就很疑惑了,難道是選用的資源有問題,看著也很正常。

于是我就把資源都放到 python flask!! 結果比java的快了好幾倍。。 瞬間我人就蒙了。

然后仔細看application.xml 配置,其實當時也沒設置什么東西 ,于是一項一項的注釋,效率上還是沒變化,我就試了試新建一個項目,然后把 html 都拿過去。

問題解決了!! 速度 非常快

好家伙,我直接好家伙,我查了幾天的問題,居然可能是在依賴上。

最后結論 :應該是某一個依賴項有問題導致的,或者版本本身不對勁

有空再去看看2.3.4 的 底層tomcat配置有什么不同

有問題的配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.tianlun</groupId>
    <artifactId>tianlunpc</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>tianlunpc</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- session jdbc -->
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-jdbc</artifactId>
        </dependency>
        <!--熱部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

沒問題的配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.tianlun</groupId>
    <artifactId>tianlinpc</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>tianlinpc</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-core</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--熱部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.7.RELEASE</version>
                <configuration>
                    <mainClass>com.tianlun.tianlunpc.TianlinpcApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

到此,關于“Spring boot應用啟動后首次訪問很慢怎么解決”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台中县| 南部县| 斗六市| 灵璧县| 开阳县| 石棉县| 顺昌县| 沁水县| 岑巩县| 太康县| 夏河县| 武陟县| 黔南| 大竹县| 沈阳市| 吴旗县| 安远县| 炉霍县| 武威市| 元氏县| 泗洪县| 鄢陵县| 广安市| 田林县| 鹤山市| 开远市| 都江堰市| 定日县| 两当县| 楚雄市| 阳东县| 宁乡县| 肇东市| 汽车| 福贡县| 兴国县| 凌海市| 北川| 保靖县| 通州市| 延边|