- Tomcat三种运行模式:在conf\server.xml下进行修改
- bio:阻塞的io,每个请求要创建一个线程处理,线程开销比较大,tomcat7以下默认,8.5以上不再使用
- Nio:非阻塞的io,通过少量线程处理大量请求,tomcat7必须修改connector配置来启动(/conf/server.xml配置文件,更改protocal)
- apr:从操作级别解决异步IO问题,大幅度提高服务器性能,首选模式,Linux若安装了APR,apr-utils,tomcat-native,tomcat直接启动就支持apr
APR对于Tomcat最大的作用就是socket调度。
你在局域网环境测,就算是400个并发,也是一瞬间就处理/传输完毕,但是在真实的Internet环境下,页面处理时间只占0.1%都不到,绝大部分时间都用来页面传输。如果不用APR,一个线程同一时间只能处理一个用户,势必会造成阻塞。所以生产环境下用apr是非常必要的
配置步骤:
- Yum -y install apr-devel gcc gcc-c++ openssl-devel openssl
- 解压tomcat_native包,一般在tomcat的bin目录,通过tar -zvxf解压
- 进入到解压后的包里的native目录,执行命令:./configure --with-apr=/usr/bin/apr-1-config --with-java-home=/opt/jdkx.x.x --with-ssl=yes(注意命令中的jdk目录xxx修改为你的版本,下面同理)
- Make && make install;native会被安装到/usr/local/apr/lib
- 由于tomcat找不到apr包,需要配置apr包到tomcat可识别路径,通过创建软连接:
- Cd /usr
- Mkdir -p java/packages/lib/amd64
- Cd amd64
- Ln -s /usr/local/apr/lib/libtcnative-1.so.0.1.xx libtcnative-1.so
- Ln -s /usr/local/apr/lib/libtcnative-1.so.0.1.xx libtcnative-1.so.0
- Vi tomcat/conf/server.xml找到并修改为<Connector connectionTimeout="20000" port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" redirectPort="8443"/>即可
- 注:该配置仅仅针对http,为针对ajp修改,若要修改ajp。在xml文件里修改对应的apj的protocol即可