最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解SpringBoot中的tomcat優(yōu)化和修改

 更新時(shí)間:2020年09月30日 16:29:35   作者:Hello Bug  
這篇文章主要介紹了詳解SpringBoot中的tomcat優(yōu)化和修改,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

項(xiàng)目背景

在做項(xiàng)目的時(shí)候,把SpringBoot的項(xiàng)目打包成安裝包了,在客戶上面安裝運(yùn)行,一切都是那么的完美,可是發(fā)生了意外,對(duì)方突然說(shuō)導(dǎo)出導(dǎo)入的文件都不行了。我急急忙忙的查看日志,發(fā)現(xiàn)報(bào)了一個(gè)錯(cuò)誤

java.io.IOException: The temporary upload location [C:\Windows\Temp\tomcat.1351070438015228346.8884\work\Tomcat\localhost\ROOT] is not valid
 at org.apache.catalina.connector.Request.parseParts(Request.java:2821)
 at org.apache.catalina.connector.Request.parseParameters(Request.java:3185)
 at org.apache.catalina.connector.Request.getParameter(Request.java:1116)
 at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:381)
 at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:84)
 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
 at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
 at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
 at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:791)
 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)
 at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 at java.lang.Thread.run(Unknown Source)

經(jīng)過(guò)分析發(fā)現(xiàn),這是tomcat在啟動(dòng)的時(shí)候會(huì)生成一個(gè)臨時(shí)的上傳文件保存的位置,但是這個(gè)位子默認(rèn)是放在系統(tǒng)的臨時(shí)文件夾中。當(dāng)這個(gè)tomcat創(chuàng)建的文件夾被系統(tǒng)刪除后,這時(shí)在上傳文件就出現(xiàn)問題了??赡軐?duì)方服務(wù)器裝上了360管家,會(huì)自動(dòng)刪掉好似

開工

針對(duì)這一個(gè)異常有以下解決方法
1.萬(wàn)能的重啟,絕大多數(shù)的問題解決方法,“你重啟一下試試”。但是這個(gè)方法只能解決得了一時(shí),解決不了一世啊。
2.在配置文件中加上

server.tomcat.basedir=自定義目錄

3.啟動(dòng)jar包的時(shí)候加上參數(shù) -Djava.io.tmpdir=自定義目錄

java -jar xx.jar -Djava.io.tmpdir=自定義目錄 

4.添加配置bean

import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


import javax.servlet.MultipartConfigElement;

@Configuration
public class TomcatBeanConfig {

  /**
   * 文件上傳臨時(shí)路徑
   */
  @Bean
  MultipartConfigElement multipartConfigElement() {
    MultipartConfigFactory factory = new MultipartConfigFactory();
    factory.setLocation("自定義目錄");
    return factory.createMultipartConfig();
  }
}

-------------------------------------分隔符 ------------------------------------------

接著說(shuō)優(yōu)化,至于優(yōu)化,我在解決上面的問題發(fā)現(xiàn),tomcat中有一個(gè)配置

# 后臺(tái)線程方法的delay大小每隔900s清除過(guò)期的session會(huì)話
server.tomcat.background-processor-delay=900

默認(rèn)值是10, 每隔10s發(fā)生一次young gc,并且CPU使用率長(zhǎng)期大于10%。

ContainerBackgroundProcessor這個(gè)線程是干什么的?

Tomcat的Engine會(huì)啟動(dòng)一個(gè)線程(就是ContainerBackgroundProcessor),該線程每10s會(huì)發(fā)送一個(gè)發(fā)送一個(gè)事件,監(jiān)聽到該事件的部署配置類會(huì)自動(dòng)去掃描webapp文件夾下的war包,將其加載成一個(gè)Context,即啟動(dòng)一個(gè)web服務(wù)。同時(shí),該線程還會(huì)調(diào)用子容器Engine、Host、Context、Wrapper各容器組件及與它們相關(guān)的其它組件的backgroundProcess方法。

個(gè)人理解是,每隔10S對(duì)session的過(guò)期清理過(guò)于頻繁從而導(dǎo)致CPU占用率過(guò)高,
我改成了900,就是每900秒檢測(cè)一次,這樣就降低CPU占用率啦

backgroundProcess對(duì)spring mvc的影響
主要影響session的過(guò)期清理,如果設(shè)置為900,
就只會(huì)每隔900s清除過(guò)期的session會(huì)話。

server.tomcat.background-processor-delay = 900s 
#調(diào)用backgroundProcess方法之間的延遲。如果未指定持續(xù)時(shí)間后綴,則將使用秒。

到此這篇關(guān)于詳解SpringBoot中的tomcat優(yōu)化和修改的文章就介紹到這了,更多相關(guān)SpringBoot tomcat優(yōu)化和修改內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java獲取當(dāng)前時(shí)間的四種方法代碼實(shí)例

    java獲取當(dāng)前時(shí)間的四種方法代碼實(shí)例

    這篇文章主要介紹了java獲取當(dāng)前時(shí)間的四種方法代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 一文詳細(xì)講解Java的父子繼承、方法的重寫與super關(guān)鍵字

    一文詳細(xì)講解Java的父子繼承、方法的重寫與super關(guān)鍵字

    Java中繼承是通過(guò)extends關(guān)鍵字實(shí)現(xiàn),幫助減少代碼重復(fù),提高復(fù)用性,子類繼承父類的屬性和方法,但私有成員除外,方法重寫(override)使子類改造父類方法以適應(yīng)新功能,這篇文章主要介紹了Java的父子繼承、方法的重寫與super關(guān)鍵字的相關(guān)資料,需要的朋友可以參考下
    2024-10-10
  • 在Spring Boot中實(shí)現(xiàn)HTTP緩存的方法

    在Spring Boot中實(shí)現(xiàn)HTTP緩存的方法

    緩存是HTTP協(xié)議的一個(gè)強(qiáng)大功能,但由于某些原因,它主要用于靜態(tài)資源,如圖像,CSS樣式表或JavaScript文件。本文重點(diǎn)給大家介紹在Spring Boot中實(shí)現(xiàn)HTTP緩存的方法,感興趣的朋友跟隨小編一起看看吧
    2018-10-10
  • SpringBoot添加License的多種方式

    SpringBoot添加License的多種方式

    License指的是版權(quán)許可證,當(dāng)我們開發(fā)完系統(tǒng)后,如果不想讓用戶一直白嫖使用,比如說(shuō)按時(shí)間續(xù)費(fèi),License的作用就有了。我們可以給系統(tǒng)指定License的有效期,控制系統(tǒng)的可用時(shí)間。
    2021-06-06
  • JavaWeb實(shí)現(xiàn)多文件上傳及zip打包下載

    JavaWeb實(shí)現(xiàn)多文件上傳及zip打包下載

    這篇文章主要為大家詳細(xì)介紹了JavaWeb實(shí)現(xiàn)多文件上傳及zip打包下載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Spring?IoC容器Bean作用域的singleton與prototype使用配置

    Spring?IoC容器Bean作用域的singleton與prototype使用配置

    這篇文章主要為大家介紹了Spring?IoC容器Bean作用域的singleton與prototype使用配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Kafka單機(jī)多broker實(shí)例集群搭建教程詳解

    Kafka單機(jī)多broker實(shí)例集群搭建教程詳解

    Apache?Kafka?是一個(gè)分布式流處理平臺(tái),廣泛應(yīng)用于日志收集、監(jiān)控?cái)?shù)據(jù)聚合等,本文將詳細(xì)介紹如何在一個(gè)單機(jī)上搭建多個(gè)Kafka?Broker實(shí)例的步驟,希望對(duì)大家有所幫助
    2025-03-03
  • 詳解Spring注解@Validated 失效分析

    詳解Spring注解@Validated 失效分析

    這篇文章主要介紹了Spring注解@Validated失效分析,文中有詳細(xì)代碼示例講解了@Validated為何失效,需要的小伙伴可以參考一下
    2023-04-04
  • Java并發(fā)工具類Exchanger的相關(guān)知識(shí)總結(jié)

    Java并發(fā)工具類Exchanger的相關(guān)知識(shí)總結(jié)

    今天給大家?guī)?lái)的文章是Java工具類Exchanger的相關(guān)知識(shí)總結(jié),文中有非常詳細(xì)的介紹及代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • java+selenium爬取圖片簽名的方法

    java+selenium爬取圖片簽名的方法

    這篇文章主要為大家詳細(xì)介紹了java+selenium爬取圖片簽名的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評(píng)論

晋州市| 都江堰市| 稷山县| 淮南市| 营山县| 射阳县| 伊金霍洛旗| 绥棱县| 大洼县| 宣武区| 高雄县| 遂宁市| 洞口县| 井陉县| 宕昌县| 许昌市| 舒城县| 三原县| 阿拉善右旗| 治多县| 白山市| 米泉市| 合水县| 贡山| 手机| 鹰潭市| 河池市| 靖远县| 宜丰县| 武隆县| 南木林县| 柳河县| 盈江县| 遂昌县| 久治县| 曲阜市| 常州市| 葫芦岛市| 酉阳| 凤庆县| 灵台县|