
Tomcat7或以下,在Linux系统中默认使用这种方式。
nio(new I/O),是Java SE 1.4及后续版本提供的一种新的I/O *** 作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、并能提供非阻塞I/O *** 作的Java API,因此nio也被看成是non-blocking I/O的缩写。它拥有比传统I/O *** 作(bio)更好的并发运行性能。
利用Java的异步IO处理,可以通过少量的线程处理大量的请求。
配置方式:
打开 tomcat 安装目录 \conf\server.xml文件,定位到这一行:
将其修改为
安装起来最困难,但是从 *** 作系统级别来解决异步的IO问题,大幅度的提高性能.
即Apache Portable Runtime,从 *** 作系统层面解决io阻塞问题。
Tomcat7或Tomcat8在Win7或以上的系统中启动默认使用这种方式。
Linux如果安装了apr和native,Tomcat直接启动就支持apr。
具体安装办法 参见这个地址: https://my.oschina.net/lsw90/blog/181161
Tomcat启动的时候,可以通过log看到Connector使用的是哪一种运行模式:
Starting ProtocolHandler ["http-bio-8080"]
Starting ProtocolHandler ["http-nio-8080"]
Starting ProtocolHandler ["http-apr-8080"]
默认的tomcat没有启用线程池
在tomcat中每一个用户请求都是一个线程,所以可以使用线程池提高性能。这里前台其实有一个调度线程,然后调度线程会放入线程池内,然后到到一定的时候线程池的任务变成工作线程
打开 tomcat 安装目录 \conf\server.xml文件,找到下面这段注释并打开:
然后找到下面的这个配置,注释掉上面的 Connector ,打开下面被注释掉的 Connector
Connector是连接器,负责接收客户的请求,以及向客户端回送响应的消息。所以 Connector 的优化是重要部分。默认情况下Tomcat支持200线程访问,超过这个数量的连接将被等待甚至超时放弃,所以我们需要提高这方面的处理能力。
打开 tomcat 安装目录 \conf\server.xml文件,找到Connector的配置部分:
其中 port 代表服务接口;protocol 代表协议类型;connectionTimeout 代表连接超时时间,单位为毫秒;redirectPort 代表安全通信(https)转发端口,一般配置成443。
可以看到除了这几个基本配置外并无特殊功能,所以我们需要对 Connector 进行扩展。
其中Connector 支持参数属性可以参考Tomcat官方网站( https://tomcat.apache.org/tomcat-8.0-doc/config/http.html )非常多,所以本文就只介绍些常用的。
除了上面列出的常见的连接器属性,标准的HTTP连接器(BIO,NIO和APR/native)都支持以下属性。
Tomcat网站的文档专门有一块是介绍在Tomcat中如何使用APR库的,说白了就是如何在Tomcat中使用JNI的方式来读取文件以及进行网络传输。这个东西可以大大提升Tomcat对静态文件的处理性能,同时如果你使用了HTTPS方式传输的话,也可以提升SSL的处理性能。
一般在Windows下,可以直接下载编译好的二进制版本的dll库文件来使Tomcat启用APR,下载地址是:http://tomcat.heanet.ie/native/
而在Linux下,可以直接解压和安装bin目录下的tomcat_native.tar.gz文件,编译之前要确保apr库已经安装,安装的方式:
# ./configure --with-apr=/usr/local/apr# make
# make install
安装成功后还需要对tomcat设置环境变量,方法是在catalina.sh文件中增加一行:
CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"怎么才能判断Tomcat是否已经启用了APR库呢?方法是通过看Tomcat的启动日志
如果没有启用APR,则启动日志一般有这么一条:
org.apache.coyote.http11.Http11Protocol start如果启用了APR,则这条日志就会变成:
org.apache.coyote.http11.Http11AprProtocol start1、配置JAVA_HOME例如 vi /etc/bashrc添加
export JAVA_HOME=/opt/jdk1.7
2、解压tomcat7.0.tar.gz到/opt/tomcat7
3、cd /opt/tomcat7
./bin/startup.sh即可
4、netstat -ntlp检查端口
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)