当前位置: 首页>编程语言>正文

[Tomcat]--Tomcat配置优化

 

使用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!

 

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
minSpareThreads="20"
enableLookups="false"
maxThreads="210"
maxKeepAliveRequests="55000"
disableUploadTimeout="false"
compression="on"
compressionMinSize="8192"
/>

 

2、tomcat配置数据库链接池

(1)设置tomcat服务器参数server.xml设置socket、线程、压缩传输参数
<Connector port="8080" protocol="HTTP/1.1"
acceptCount="100"
maxThreads="200"
minSpareThreads="25"
maxSpareThreads="75"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
redirectPort="8443" />
(2)设置tomcat数据库连接池参数context.xml设置数据库连接池
<?xml version='1.0' encoding='utf-8'?>
<Context>

<Resource
name="jdbc/b2b"
type="javax.sql.DataSource"
auth="Container"
url="jdbc:oracle:thin:@localhost:1521:b2b"
driverClassName="oracle.jdbc.driver.OracleDriver"
username="b2b"
password="b2b "
maxActive="150"
maxIdle="30"
maxWait="5000"/>

</Context>

 

 

参考文档:

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​​

 

 

 

 

 

 

 


https://www.xamrdz.com/lan/5qv1987301.html

相关文章: