1.配置优化
conf/web.xml优化
- 移除视图层组件JspServlet
不使用jsp情况下可以移除
- 移除welcome-file-list
不使用欢迎页面情况下移除
- 移除mime-mapping配置(mime-mapping作用就是告诉给浏览器处理的格式)
根据项目实际情况移除,微服务保留json格式即可 - 移除session会话
集群情况下都用token代替session
conf/server.xml优化
- 移除conf/server.xml AccessLogValve
- 移除Connector的监听 8009 AJP(AJP用于tomcat内部之间通讯)
-
并发优化
相关参数配置:
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
网友评论