文档章节

Tomcat三种模式及配置APR模式

boonya
 boonya
发布于 2019/03/08 13:00
字数 563
阅读 11
收藏 0

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。(安装方法:http://www.cnblogs.com/nb-blog/p/5278502.html)

 

官方对这三种的区别的详细说明:

                  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模式

安装依赖库

yum install apr-devel openssl-devel


安装apr动态库


进入tomcat的bin目录
解压tomcat-native.tar.gz文件
进入tomcat-native-1.2.7-src/native目录
./configure && make && make install
动态库默认安装在/usr/local/apr/lib目录下


配置APR本地库到系统共享库搜索路径中


编辑$TOMCAT_HOME/bin/catalina.sh文件

JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"


Tomcat8以下需要指定运行模式


编辑$TOMCAT_HOME/conf/server.xml文件

<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="20000" enableLookups="false"
redirectPort="8443" />


关闭SSL

从on改成off

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />


 

本文转载自:https://blog.csdn.net/hyh8557/article/details/79030314 

boonya
粉丝 79
博文 330
码字总数 64084
作品 0
海淀
高级程序员
私信 提问
tomcat runing on daemon with apr and ssl mode

前言: 简要介绍下tomcat 的三种运行模式,记录基于apr模式及支持SSL模式的安装方式 环境: 本文主要基于ubuntu 安装tomcat 7,与基于centos并无太大差异,主要差异在于相关依赖包的名称,在...

lylspecter
2017/01/05
0
0
开启Tomcat APR运行模式,优化并发性能

Tomcat支持三种接收请求的处理方式:BIO、NIO、APR 1>、BIO模式:阻塞式I/O操作,表示Tomcat使用的是传统Java I/O操作(即java.io包及其子包)。Tomcat7以下版本默认情况下是以bio模式运行的,...

woshiluo
2018/06/28
0
0
为了使单个Tomcat达到最大性能,已启用APR的Tomcat还必要配线程池吗?

小项目,估计一个tomcat跑跑就够了,但为了尽善尽美,想尽量将tomcat性能搞得最大(服务器配置很够,单个tomcat跑着只是其中一个用途)。各种百度知道tomcat三种bio,nio,apr,现在tomcat已是...

灵溪小鱼
2015/11/16
3.2K
8
Tomcat Connector三种运行模式(BIO, NIO, APR)的比较和优化

Tomcat Connector的三种不同的运行模式性能相差很大,有人测试过的结果如下: 这三种模式的不同之处如下: BIO: 一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。 Tomcat7或...

mifans
2016/10/25
177
0
Tomcat Connector三种运行模式(BIO, NIO, APR)的比较和优化

Tomcat Connector的三种不同的运行模式性能相差很大,有人测试过的结果如下: 这三种模式的不同之处如下: BIO: 一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。 Tomcat7或...

Canaan_
2016/07/27
133
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在不重新启动R的情况下卸载程序包

我想卸载一个包,而不必重新启动R(主要是因为重新启动R,因为我尝试了不同的,冲突的包令人沮丧,但可以想象这可以在一个程序中使用一个函数然后另一个 - 虽然命名空间引用可能是一个更好的...

javail
38分钟前
98
0
mybatis {arg0} 与 {0}

MyBatis的XML的配置文件中声明设置属性的useActualParamName参数值为false <setting name="useActualParamName" value="false" /> 代码展示: Dao层函数 User getUserBys(int id,String name......

RainTa
53分钟前
123
0
IT小白们进击前端工程师的学习路线:编辑器,基础进阶学习要点,框架

一、HTML、CSS基础、JavaScript语法基础。学完基础后,可以仿照电商网站(例如京东、小米)做首页的布局。 二、JavaScript语法进阶。包括:作用域和闭包、this和对象原型等。相信我,JS语法,...

梦想编程
今天
97
0
ZhaoWei-2020-01-19

Dubbo Dubbo是一个分布式服务治理框架,提供高性能和透明化的RPC远程服务调用方案及 SOA架构治理方案。 远程通信 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及 ...

SuSheePark
今天
30
0
Linux 安装 jq

先下载jq安装包 https://stedolan.github.io/jq/download/将下载的安装包文件jq-linux64 拷贝到服务器下 wget -O jq https://github.com/stedolan/jq/releases/download/jq-1.6/jq-li......

乐易林谷
今天
140
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部