Tomcat的三种模式及部署两个项目
文章
林里克斯
企业级中间件Tomcat
详解之三种模式及部署两个项目
Tomcat Connector的三种不同的运行模式性能相差很大,有人测试过的结果如下:
这三种模式的不同之处如下:
●BIO:
一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。
Tomcat7或以下,在Linux系统中默认使用这种方式。
●NIO:
利用Java的异步IO处理,可以通过少量的线程处理大量的请求。
Tomcat8在Linux系统中默认使用这种方式。
Tomcat7必须修改Connector配置来启动:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000" redirectPort="8443"/ >
●APR:
即Apache Portable Runtime,从操作系统层面解决io阻塞问题。
Tomcat7或Tomcat8在Win7或以上的系统中启动默认使用这种方式。
Linux如果安装了apr和native,Tomcat直接启动就支持apr。
官方对这三种的区别的详细说明:
Java Blocking Connector | Java Nio Blocking Connector | APR/native Connector | |
---|---|---|---|
BIO | NIO | APR | |
Classname | AjpProtocol | AjpNioProtocol | AjpAprProtocol |
Tomcat Version | 3.x onwards | 7.x onwards | 5.5.x onwards |
Support Polling | NO | YES | YES |
Polling Size | N/A | maxConnections | maxConnections |
Read Request Headers | Blocking | Sim Blocking | Blocking |
Read Request Body | Blocking | Sim Blocking | Blocking |
Write Response | Blocking | Sim Blocking | Blocking |
Wait for next Request | Blocking | Non Blocking | Non Blocking |
Max Connections | maxConnections | maxConnections | maxConnections |
Tomcat
启动的时候,可以通过log
看到Connector
使用的是哪一种运行模式:
Starting ProtocolHandler ["http-bio-8080"]
Starting ProtocolHandler ["http-nio-8080"]
Starting ProtocolHandler ["http-apr-8080"]
例如:
安装apr
来提高tomcat
的可伸缩性和性能(Tomcat的APR模式需要)
1.apr
和apr-util
下载apr
和apr-util
最新版
http://apache.fayea.com/apr/
此次试验下载版本为:
apr-1.5.0.tar.gz
apr-util-1.5.3.tar.gz
解压文件
$ tar xf apr-1.5.0.tar.gz
$ tar xf aor-util-1.5.3.tar.gz
安装apr
和apr-util
$ cd /ane/apr-1.5.0
$ ./configure --prefix=/ane/apr
$ make && make install #编译安装
$ cd /ane/apr-util-1.5.3
$ ./configure --prefix=/ane/apr-util --with-apr=/ane/apr
$ make && make insatll
2.tomcat-native
下载tomcat-native
http://tomcat.apache.org/download-native.cgi
安装 tomcat-native
$ cd /ane/native/
$ tar xf tomcat-native.tar.gz
$ cd tomcat-native-1.1.29-src/jni/native
$ ./configure --with-apr=/ane/apr --with-java-home=/ane/java/jdk1.7.0_25
$ make && make install
设置 apr 的环境变量
$ vim /etc/profile
#在文本的最后面添加以下内容
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/ane/apr/lib
source /etc/profile #使profile生效,
启动tomcat
并查看catalina.out
$ cd /ane/tomcat/bin
$ ./startup.sh
$ tail -500f /ane/tomcat.logs/catalina.out
出现:
org.apache.catalina.core.AprLifecycleListener.init Loaded APR based Apache Tomcat Native library 1.1.29 using APR version 1.5.0.
则apr
安装成功
tomcat
使用同一端口号部署多个项目
$ vim /tomcat/conf/server.xml
<Context path="/anepda" reloadable="true" docBase="/ane/tomcat2/webapps/ROOT" /> #新添加(我是添加在最后)
<Context path="/anepdanew" reloadable="true" docBase="/ane/tomcat2/webapps1/ROOT" />
通过访问:
http://127.0.0.1:8080/anepda #对应各子的项目
http://127.0.0.1:8080/anepdanew #对应各子的项目
Over~
版权协议须知!
本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
1384 0 2017-07-22
博主卡片
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。
现在时间 2024-12-28
今日天气
站点统计
- 文章总数:241篇
- 分类总数:29个
- 评论总数:12条
- 本站总访问量 353464 次
@xiaozi 最后的分享的镜像下载地址打不开 服务器没有开机吗?
@yuanyuan 为什么我的4b安装centos7.9 插上tf卡 显示不兼...
@Wong arrhenius 牛比
@MakerFace 厉害了!
@TongSir 老哥 更新下我的友链链接 https://blog.ton...