Tomcat中Connector常用配置

导读:本篇文章讲解 Tomcat中Connector常用配置,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

accept-count

含义:所有的处理线程都在使用时,传入连接请求的最大队列长度,当队列满时收到的任何请求都将被拒绝。
默认值:100

max-connections

含义:服务器在任何给定时间接收和处理的最大连接数。当达到这个数字时,服务器将接收一个连接但是不处理。这个附加连接将被阻塞,直到正在处理的连接数降到maxConnections以下,服务器再次开始接收并重新处理新的连接。
一旦达到限制,操作系统仍然可以结束基于acceptCount设置的连接数。如果超过max-connections + acceptCount 个连接,新的连接将被拒绝。
默认值:10000

max-swallow-size

含义:Maximum amount of request body to swallow.
将由Tomcat吞下上传失败的最大请求体字节数(不包括传输编码开销)。 上传失败是当Tomcat知道请求的身体将被忽略但客户仍将其发送。 如果Tomcat不吞下请求体,客户不太可能看到响应。 如果没有指定默认将使用2097152(字节)。 小于0的值表明没有限制应该被强制执行。
默认:2M byte

max-threads

含义:连接器同一个时刻最大的工作线程数,因此可以确定可以处理的最大并发请求数。
默认:200

min-spare-threads

含义:连接器同一个时刻最少的工作线程数,线程池中保持活跃的的线程最小数量。
默认:10

connection-timeout

含义:连接器接收连接后等待第一个请求数据到达的最大时间,只对连接后的第一个请求数据有效,相当于建立连接后第一次等待客户端发送请求的时间,之前客户端发送数据的间隔时间跟这个配置无关。
当client与tomcat建立连接后,在connection-time时间内仍热没有得到client请求数据,此时连接将会被断开。

  • 此值的设定需要考虑到网络的稳定性,同时也有性能的考虑,它和tcp的配置项中的socket_timeout仍有区别,connectionTimeout之后在连接建立之后,得到client发送http-request信息前有效,sokect_timeout是服务端返回数据的最大响应时间。
    默认:60s

keepAliveTimeout

含义:连接空闲时间。连接器在关闭连接前等待另一个http请求的毫秒数。默认值是使用connection-timeout属性设置的值。设置-1表示空闲时间无穷大。
默认:60s

maxHeaderCount

含义:http请求中的header的最多的参数个数,默认100。-1表示不限制,通常不会关注此属性,但是一下设计“扭曲”的web应用中,使用header传递大量的参数和校验信息时,可能需要调整此值。如果请求中的header个数超过此限定值,请求将会被拒绝。
默认:100

maxParameterCount

含义:http-get请求找那个允许传递的参数最大个数。
可以通过tomcat设置合适的值,parameter个数越多,事实上对tomcat的内存开支越大,很多时候处于安全或者实用的角度考虑,maxParameterCount的值都不会太大,-1表示无限制,如果请求中参数个数超过限定值,请求将被拒绝。
为了安全和规范,maxHeaderCount和maxParamterCount通常设置为100;如果请求参数过多,建议实用post body发送或者拆分请求。
默认:10000

maxPostSize(max-http-post-size)

含义:http-post请求中数据(body)的最大尺寸,单位byte,默认为2M。这对一些表单提交(较多文本或者图片)有影响。可以适度调整此值,大文件上传一般会在client拆分成小文件在发送,而不是直接发送。
默认:2M byte

bufferSize

含义:链接在读取stream数据流时,buffer数据的尺寸,控制的是输入缓冲区大小。
Connector创建的输入流的大小,默认值是2048 bytes,提高这个值可以提升性能,但是会增加内存消耗。
默认:2k byte

socketBuffer

含义:缓冲区的大小(以字节为单位)套接字提供输出缓冲,控制的是输出缓冲区的大小。-1可以禁用指定缓冲区的使用。默认情况下,将使用9000字节的缓冲区。
默认:9000 byte

acceptorThreadCount

含义:表示用于accept作用,接收新连接的线程个数,如果在多核cpu架构下,此值可以设置为2,官方不建议设置超过2的值。
默认:1

maxHttpHeaderSize

含义:http头最大尺寸,默认为8192,单位为字节。
默认:8192 byte

protocol

使用的网络协议,表示tomcat使用何种方式来接受和处理client端请求,“HTTP/1.1″是默认值,等效于”org.apache.coyote.http11.Http11Protocol”;还有熟悉的”AJP/1.3″;关于HTTP和AJP两种方式的区别和性能优劣可以参见其他文档.
在Tomcat 6.0之后,还提供了NIO的方式,可以有效的提升性能,特别是在大量长连接/数据上传+下载等web应用中.此时portocal=“org.apache.coyote.http11.Http11NioProtocol”.
tomcat目前支持:BIO、NIO、NIO2、APR四种IO模型,默认为BIO。对于互联网应用,我们应该在NIO、NIO2之间做选择,因为它能够有效的提升性能(主要是并发能力),其中NIO2即为AIO,需要JDK 1.7+、Linux 2.6+才能支持。
BIO:JDK 1.5+,tomcat 5.x+
NIO:JDK 1.6+,tomcat 6.x+
NIO2:JDK 1.7+,tomcat 7.x+
为了保守起见,我们暂且基于NIO模式。

参考

tomcat8 server.xml 标签connector 配置说明
Tomcat connector

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/100274.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!