Tomcat的Connector及线程池配置

笔记总结自网易云课堂web开发课程

Connector参数配置

port端口号
Tomat默认的端口号为8080,根据不同的需求,我们可能需要修改端口号。

address监听地址
实际使用中,我们的服务器一般会有多个IP地址,为了区分出我们需要监听的对象,需要设定一个地址。如果不配置address的话,默认会在所有的地址上监听请求,出于安全原因,一般是不被允许的。

protocal协议
默认协议为HTTP/1.1。

connectionTimeout
连接时间限制,单位为毫秒,我们建立TCP连接时,在HTTP/1.1协议中,默认是保持连接的(connection:keep-alive),这样,服务器会分配一个线程,如果长时间不使用这个线程(尸位素餐),服务器会自动断开。

acceptCount
当系统没有空闲线程去处理请求时,请求就需要排队进入了,而acceptCount就是用来设定这个等候队列的长度的,默认值为100。如果超出了队列的长度的话,Connector就不会再进行处理了。

maxConnections
最大同时连接数,默认BIO Connector的最大连接数是线程值的最大值。若设定为-1,即在服务器资源允许的前提下,尽可能多的接受连接请求。

线程池

线程池是用来存放事先创建好的一定数目的线程使用的,当有任务时,从线程池中取出线程,使用完毕后,放回线程池。线程的创建和销毁要花费大量的时间,对服务器的影响比较大,所以我们实际上事先创建线程,减少了线程的创建与销毁。
minSpareThreads
最小空闲线程数,即没有连接时,必须要要存在的空闲线程。
maxThreads
最大线程数,即服务器能够创建的最大线程数量。
弹性线程池
线程池中的线程数量在最小值和最大值之间随请求数量变化的线程池成为弹性线程池。

Connector配置

Connector的配置信息保存在Tomcat目录下conf文件夹中server.xml文件里,在更改配置信息时,要养成随手备份的好习惯。

cp server.xml server.xml.bak
修改Connector

用任意的文本编辑软件打开server.xml文件,找到Connector,即可对Connector进行修改。上图是默认的Connector信息,它的端口是8080,协议为HTTP/1.1,连接时间为20000毫秒,即20秒,重定向端口为8443(https协议使用).

线程池配置

找到Connector标签上面的标签,并将其注释去掉,


线程池配置

这里,有线程池的名字,最大连接数和最小空闲连接数。
若想使Connector使用刚才定义好的线程池,需要在Connector中添加以下属性:

executor="ThreadPoolName"

或者,我们也可以将线程池的两个属性添加在Connector标签中。若依赖存在的话,优先使用依赖的线程池。多个Connector可以共用一个Executor的配置。
这样,我们的配置就完成了。只需要重新启动Tomcat,就能使用新的配置了。

curl http://127.0.0.1:8080
telnet localhost 8080//这样会保持连接,可以用来验证maxThread的效果。
GET /path HTTP/1.1

注意

在server.xml文件中,我们所修改的一切都不涉及对系统资源的直接配置,包括CPU,内存等信息,都不是我们直接修改的。

你可能感兴趣的:(Tomcat的Connector及线程池配置)