Tomcat的三种模式及部署两个项目

文章
林里克斯

企业级中间件Tomcat详解之三种模式及部署两个项目

Tomcat的三种模式及部署两个项目

Tomcat Connector的三种不同的运行模式性能相差很大,有人测试过的结果如下:

Tomcat的三种模式及部署两个项目

这三种模式的不同之处如下:

●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"]

例如:

Tomcat的三种模式及部署两个项目


安装apr来提高tomcat的可伸缩性和性能(Tomcat的APR模式需要)


1.aprapr-util

下载aprapr-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

安装aprapr-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" />

Tomcat的三种模式及部署两个项目

通过访问:

http://127.0.0.1:8080/anepda     #对应各子的项目
http://127.0.0.1:8080/anepdanew  #对应各子的项目

Over~

版权协议须知!

本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

1384 0 2017-07-22


分享:
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
博主卡片
林里克斯 博主大人
一个致力于Linux的运维平台
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。

现在时间 2024-12-28

今日天气
站点统计
  • 文章总数:241篇
  • 分类总数:29个
  • 评论总数:12条
  • 本站总访问量 353464 次

@奥奥

@Wong arrhenius 牛比

@MakerFace 厉害了!