Spring Boot 學習系列(11)—tomcat引數配置建

weixin_33724059發表於2018-11-01

此文已由作者易國強授權網易雲社群釋出。

歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。


  • 在SpringBoot專案中,使用的是內嵌的Tomcat容器,相關的配置項如下表:



  • 除去和預設值相同的配置,在專案中建議新增的配置如下:

    server.tomcat.minSpareThreads=50server.tomcat.maxThreads=1024server.tomcat.maxHttpPostSize=20971520server.tomcat.remoteIpHeader=X-Forwarded-For
    server.tomcat.basedir=.
    server.tomcat.accesslog.enabled=true
    server.tomcat.accesslog.pattern=%{X-Real-IP}i %l %u %t "%r" %s %b %D %T %{Referer}i "%{User-Agent}i" %I %v %aserver.tomcat.accesslog.prefix=access.logserver.tomcat.accesslog.suffix=
    server.tomcat.accesslog.renameOnRotate=true
  • 字首為server的配置項,對應的配置類為org.springframework.boot.autoconfigure.web.ServerProperties,ServerProperties類中有一個內部類Tomcat,對應字首為server.tomcat的配置項。

  • 專案啟動時,這些配置會被set到org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory類中(引入spring-boot-starter-web依賴,會自動引入spring-boot-starter-tomcat,就是說tomcat是系統預設的容器,所以會自動初始化),之後TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer()建立並啟動Tomcat容器例項。

  • Tomcat內部使用的是java.util.concurrent.ThreadPoolExecutor執行緒池,容器啟動時會在org.apache.tomcat.util.net.AbstractEndpoint.createExecutor()這裡建立執行緒池,所以其中最大最小執行緒數、執行緒建立、銷燬和分配的策略其實都是ThreadPoolExecutor的特性。


  • 不足之處,歡迎指正,謝謝~


免費體驗雲安全(易盾)內容安全、驗證碼等服務

更多網易技術、產品、運營經驗分享請點選




相關文章:
【推薦】 Kylin效能調優記——業務技術兩手抓
【推薦】 聊一聊資料分析師這個職業

相關文章