您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何解決springboot做的controller服務時每隔一段時間后第一次請求耗時特別長,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
1、在訪問任何一個接口后,此接口在短時間內訪問速度都很正常。但就是在每隔一段時間后(大概幾秒)第一個請求訪問速度很慢,客戶端顯示耗時是3000ms,但服務器打印耗時正常就是60ms。
2、本機windows環境調試的時候不會出現這種問題,部署到linux系統下出現此問題。
問題:
無論用瀏覽器、Postman、curl、Python(requests) 去訪問接口,均得到第一次響應非常耗時,短時間內第二次訪問會快很多;
服務端在controller打印耗時一直是正常的耗時60ms左右,在第一次響應非常慢時,服務器端打印耗時還是60ms,但客戶端耗時是3000ms。可以排除掉網絡(客戶端請求代碼與服務器在同一臺機器上)、性能(測試環境)等問題。
解決方案:
第一種:升級springboot,spring-boot-starter-parent從1.4.2版本升級到1.5.9版本,升級后,問題解決。(我們目前使用這種方案)升級后若是出現jsp頁面無法訪問問題,參考http://blog.csdn.net/wwd0501/article/details/79609415處理
第二種:打成 war 包部署到正常的 tomcat 上,問題解決。(打war包方式http://blog.csdn.net/wwd0501/article/details/79555215)
第三種:將內置Tomcat的改為undertow,問題解決。
修改pom文件
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-undertow</artifactId> </dependency>
關于如何解決springboot做的controller服務時每隔一段時間后第一次請求耗時特別長就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。