一、嵌入式容器的运行参数配置

  • SpringBoot支持的应用服务容器
    • tomcat , jboss, weblogic, websphere ,jetty,undertow,netty
  • 调整SpringBoot应用容器的参数两种配置方式

    • 修改配置文件
      • 配置项
        • server.xx开头的是所有servlet容器通用的配置
        • server.tomcat.xx开头的是tomcat容器特有的配置参数
        • server.jetty.xx开头的是Jetty容器特有的配置参数
        • server.under.xx开头的是undertow容器特有的配置参数
    • 常用的配置参数 | 参数 | 默认值 | 说明 | | —- | —- | —- | | server.port | 8080 | 配置Web容器的端口号 | | server.servlet.session.timeout | 30m | session失效时间,如果不写单位默认单位是秒(Tomcat中配置session过期时间是以分钟为单位) | | server.servlet.context-path | / | URL访问路径的基础路径 | | server.tomcat.uri-encoding | UTF-8 | 配置Tomcat请求编码 | | server.tomcat.basedir | | 配置Tomcat运行日志和临时文件的目录,若不配置,默认使用系统的临时目录 |

    • tomcat配置参数调优

      • 在Acceptor之前维护一个请求接收队列,该队列的最大长度即:server.tomcat.max-connections
      • Acceptor监听连接请求,并生成一个SocketProcessor任务提交到线程池去处理
      • 当线程池里面所有线程都被占用,新建的SocketProcessor任务被放入等待队列
      • 线程池的server.tomcat.threads.max决定了tomcat的极限SocketProcessor任务处理能力不是越大越好,线程越多耗费的资源也越多
      • 线程池的server.tomcat.threads.min-spare在应用空闲时,保留一定的线程数在线程池内,避免请求到来后,临时创建线程浪费时间 | 参数 | 默认值 | 说明 | | —- | —- | —- | | server.tomcat.max-connections | 8192 | 接受的最大请求连接数 | | server.tomcat.accept-count | 100 | 当所有的线程都被占用,被放入请求队列等待的最大的请求连接数量 | | server.tomcat.threads.max | 200 | 最大的工作线程池数量 | | server.tomcat.threads.min-spare | 10 | 最小的工作线程池数量 |
    • 自定义配置类【可以定制的内容更多,也更灵活需要深入理解server容器底层实现原理及设计机制】

      • 建立配置类,加上@Configuration注解
      • 添加定制器 ConfigurableServletServerFactory
      • 将定制器返回

二、为Web容器配置HTTPS
三、切换到jetty&undertow容器
打war包部署到外置tomcat容器