tomcat优化

1.配置优化

conf/web.xml优化

  • 移除视图层组件JspServlet
    不使用jsp情况下可以移除
图片.png
  • 移除welcome-file-list
    不使用欢迎页面情况下移除
图片.png
  • 移除mime-mapping配置(mime-mapping作用就是告诉给浏览器处理的格式)
    根据项目实际情况移除,微服务保留json格式即可
  • 移除session会话
    集群情况下都用token代替session
图片.png

conf/server.xml优化

  • 移除conf/server.xml AccessLogValve
图片.png
  • 移除Connector的监听 8009 AJP(AJP用于tomcat内部之间通讯)
图片.png
  • 并发优化
    相关参数配置:
    name: 线程池名称.
    namePrefix: 创建的每个线程的名称前缀, 单独的线程名称为 namePrefix + threadNumber.
    maxThreads: 线程池中最大并发线程数, 默认值为200, 一般建议设置400~ 800 , 要根据服务器配置和业务需求而定
    minSpareThreads: 最小活跃线程数, 也就是核心线程数, 不会被销毁, 会一直存在
    prestartminSpareThreads: 是否在启动程序时就生成minSpareThreads个线程, 默认为false, 即不启动. 若不设置为true, 则minSpareThreads的设置就不起作用了
    maxIdleTime: 线程最大空闲时间, 超过该时间后, 空闲线程会被销毁, 默认值为6000, 单位为毫秒
    maxQueueSize: 最大的等待队列数, 超过则拒绝请求. 默认值为int类型的最大值(Integer.MAX_VALUE), 等同于无限大. 一般不作修改, 避免发生部分请求未能被处理的情况
    threadPriority: 线程池中线程的优先级, 默认值为5, 取值范围: 1 ~ 10


    图片.png
  • 配置io模型
    1.BIO:protocol =" org.apache.coyote.http11.Http11Protocol"
    阻塞式IO,采用传统的java IO进行操作,该模式下每个请求都会创建一个线程,
    适用于并发量小的场景
    2.NIO:protocol ="org.apache.coyote.http11.Http11NioProtocol"
    同步非阻塞,比传统BIO能更好的支持大并发,tomcat 8.0 后默认采用该模式
    3.APR:protocol ="org.apache.coyote.http11.Http11AprProtocol"
    tomcat 以JNI形式调用http服务器的核心动态链接库来处理文件读取或网络传输操作,需要编译安装APR库
    4.AIO:protocol ="org.apache.coyote.http11.Http11Nio2Protocol"
    异步非阻塞,tomcat8.0后支持


    图片.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容