使用tomcat中间件时,需要依据实际情况进行配置,以下是我在开发和生产环境下使用的配置参考以及相关说明,供初学者学习,不足之处还请指正。
一、server.xml中参数说明
(1)maxThreads="150" 最多同时处理150个连接。Tomcat可创建的最大线程数。150~250。
(2)minSpareThreads="25" 表示即使没有人使用也开这么多空线程等待,初始化时创建 ,
(3)maxSpareThreads="75" 最多可空75个线程(一旦超过,Tomcat就关闭不再需要的socket线程。默认50)
(4)acceptCount="100" 连接数达到maxThreads时,还可排队的连接数,超过则返回拒绝连接。(默认10)
(5)enableLookups: 是否反查域名,默认true。为提高处理能力,应false
(6)connectionTimeout: 连接超时,默认60000毫秒。配0表示永不超时,但有隐患。通常可配30000。
(7)maxKeepAliveRequests:
最大长连接个数(1表示禁用,-1表示不限制个数,默认100个。一般设置在100~200之间)nginx动态的转给html" class="superseo">tomcat,
nginx是不能keepalive的,而tomcat默认开启keepalive,会等待keepalive的timeout,默认不设置就是使用connectionTimeout。
所以必须设置tomcat的超时时间,并关闭tomcat的keepalive。否则会产生大量tomcat的socket timewait。
maxKeepAliveRequests="1"表示每个连接只响应一次就关闭,这就不会等待timeout了,可避免tomcat产生大量TIME_WAIT连接,从一定程度上避免tomcat假死。
port="8080" protocol="HTTP/1.1"
connectionTimeout="30000" maxKeepAliveRequests="1"
redirectPort="8443" bufferSize="8192" sockedBuffer="65536" acceptCount="200"/>
(8)bufferSize: 输入流缓冲大小,默认值2048 bytes。
(9)compression:压缩传输,取值on/off/force,默认值off。
(10)URIEncoding:编码格式
二、参考配置
1、使用数据库连接池
注意:
(1)使用的是阿里巴巴druid连接池
(2)tomcat里面的maxThreads要大于等于druid数据库中的maxActive参数,但是在tomcat中,maxThreads的上限是250!
2、tomcat配置数据库链接池
参考文档:
server.xml官方说明: https://tomcat.apache.org/tomcat-8.0-doc/config/http.html
context.xml官方说明:https://tomcat.apache.org/tomcat-8.0-doc/config/context.html