zoukankan      html  css  js  c++  java
  • Spring Boot 学习系列(11)—tomcat参数配置建

    此文已由作者易国强授权网易云社区发布。

    欢迎访问网易云社区,了解更多网易技术产品运营经验。


    • 在SpringBoot项目中,使用的是内嵌的Tomcat容器,相关的配置项如下表:


    image


    • 除去和默认值相同的配置,在项目中建议添加的配置如下:

      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的特性。


    • 不足之处,欢迎指正,谢谢~


    免费体验云安全(易盾)内容安全、验证码等服务

    更多网易技术、产品、运营经验分享请点击




    相关文章:
    【推荐】 DDoS攻击与防御:从原理到实践

  • 相关阅读:
    KMP的next
    关于codeblocks左边文件栏不见的问题
    数据结构第二章内容
    设置notepad++ 的 tab 设为4个空格和设置为中文语言
    字面量
    ..没什么
    今天做的HTML练习
    DAY 145 django的聚合函数和aggregate、annotate方法使用
    DAY 144 Math.round()/Math.ceil()/Math.floor()差异
    DAY 143 DRF-Django rest framework
  • 原文地址:https://www.cnblogs.com/zyfd/p/9887361.html
Copyright © 2011-2022 走看看