Tomcat连接器详解
1.连接器等同于nginx中的引擎。
2.tomcat连接器有三种运行模式bio、nio、apr 。
(1)bio(blocking I/O,阻塞式I/O操作)
1)表示tomcat使用的是传统的java I/O操作(即java.io包及其子包)。 2)一个线程处理一个请求。 3)缺点:并发量高时,线程数较多,浪费资源。 4)tomcat7或以下版本,在Linux系统中默认使用这种方式。 5)性能最差,没有经过任何优化处理和支持。(2)nio(non-blocking I/O)
1)java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。 2)java nio 是一个基于缓冲区、并能提供非阻塞I/O操作的java API。 3)拥有比传统I/O操作更好的并发运行性能。 4)利用java的异步IO处理,可以通过少量的线程处理大量的请求。 5)tomcat8在linux系统中默认使用这种方式。(3)apr(apache Portable Runtime /Nginx可移植运行时库)
1)tomcat将以JNI的形式调用apache http服务器的核心动态链接库来处理文件读取或网络传输操作。 2)大大提到tomcat对静态文件的处理性能。 3)从操作系统级别来解决异步的IO问题,大幅度提高性能。 4)tomcat apr也是tomcat上运行高并发应用的首选模式。
3.调整为nio模式,需修改配置文件 server.xml
修改以下内容
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" />修改为
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" />
4.调整为apr模式
(1)安装apr和native
1 yum -y install apr apr-devel 2 3 cd /usr/local/tomcat/bin/ 4 tar xzvf tomcat-native.tar.gz 5 cd tomcat-native-1.1.33-src/native/ 6 ./configure --with-apr=/usr/bin/apr-1-config 7 make && make install(2)设置环境变量
1)第一种方式:在bin/catalina.sh中增加以下配置
增加以下内容
2)第二种方式:在/etc/profile中添加以下内容
exprot CATALINA_OPTS=-Djava.library.path=/usr/local/apr/libsource /etc/profile
(3)修改配置文件
1)修改以下内容
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"2)修改为
<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="20000"