Tomcat Connector三种运行模式,默认bio,其他两个nio,Apr
来源:互联网 发布:lte测试软件 编辑:程序博客网 时间:2024/05/29 15:56
修改Tomcat Connector运行模式,优化Tomcat运行性能
Tomcat是一个小型的轻量级应用服务器,也是JavaEE开发人员最常用的服务器之一。不过,许多开发人员不知道的是,Tomcat Connector(Tomcat连接器)有bio、nio、apr三种运行模式,那么这三种运行模式有什么区别呢,我们又如何修改Tomcat Connector的运行模式来提高Tomcat的运行性能呢?
下面,我们先大致了解Tomcat Connector的三种运行模式。
bio
bio(blocking I/O),顾名思义,即阻塞式I/O操作,表示Tomcat使用的是传统的Java I/O操作(即java.io
包及其子包)。Tomcat在默认情况下,就是以bio模式运行的。遗憾的是,就一般而言,bio模式是三种运行模式中性能最低的一种。我们可以通过Tomcat Manager来查看服务器的当前状态。【点击这里可以查看Tomcat Manager用户配置的相关信息】
nio
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)更好的并发运行性能。要让Tomcat以nio模式来运行也比较简单,我们只需要在Tomcat安装目录/conf/server.xml
文件中将如下配置:
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />
中的protocol属性值改为org.apache.coyote.http11.Http11NioProtocol
即可:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"connectionTimeout="20000"redirectPort="8443" />
此时,我们就可以在Tomcat Manager中看到当前服务器状态页面的HTTP协议的Connector运行模式已经从http-bio-8080
变成了http-nio-8080
。
apr
apr(Apache Portable Runtime/Apache可移植运行时),是Apache HTTP服务器的支持库。你可以简单地理解为,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高Tomcat对静态文件的处理性能。 Tomcat apr也是在Tomcat上运行高并发应用的首选模式。如果我们的Tomcat不是在apr模式下运行,在启动Tomcat的时候,我们可以在日志信息中看到类似如下信息:
2013-8-6 16:17:49 org.apache.catalina.core.AprLifecycleListener init信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: xxx/xxx(这里是路径信息)
Tomcat apr运行模式的配置是三种运行模式之中相对比较麻烦的一种。据官方文档所述,Tomcat apr需要以下三个组件的支持:
- APR library[APR库]
- JNI wrappers for APR used by Tomcat (libtcnative)[简单地说,如果是在Windows操作系统上,就是一个名为tcnative-1.dll的动态链接库文件]
- OpenSSL libraries[OpenSSL库]
此外,与配置nio运行模式一样,也需要将对应的Connector
节点的protocol
属性值改为org.apache.coyote.http11.Http11AprProtocol
。 不过,上述繁琐的操作都是Tomcat 7.0.30之前的版本才需要这样配置,从Tomcat 7.0.30版本开始,Tomcat已经自带了tcnative-1.dll
等文件,并且默认就是在Tomcat apr模式下运行,因此我们只需要下载最新版本的Tomcat直接使用即可。
- Tomcat Connector三种运行模式,默认bio,其他两个nio,Apr
- Tomcat Connector的三种运行模式【bio、nio、apr】
- Tomcat Connector的三种运行模式【bio、nio、apr】
- Tomcat Connector运行模式(BIO, NIO, APR)
- Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式【转】
- Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式(未完善)
- Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
- Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
- Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
- Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
- Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
- Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
- Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
- Tomcat Connector三种运行模式(BIO, NIO, APR)的比较和优化
- Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
- Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
- Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
- Tomcat 的三种(bio、nio、apr) 高级 Connector 运行模式
- cocoapods转project.pbxproj格式成xml
- C++中面向对象的思想
- Struts2 实现下载文件
- 关于JS中的显示和隐藏
- 图解oracle jdeveloper 进行web服务(Web Service)测试
- Tomcat Connector三种运行模式,默认bio,其他两个nio,Apr
- (重装MySQL)ubuntu中/var/runmysqld/mysqld.sock 问题E: Sub-process /usr/bin/dpkg returned an error code
- L1-8. 求整数段和
- P2P模式的相应/应答的一个例子
- HTTPS
- 变量可见性和volatile, this逃逸, 不可变对象, 以及安全公开--Java Concurrency In Practice C03读书笔记
- [jQuery]DOM总结
- 【问题解决】——virtualbox安装快完成的时候立即回滚,并弹出严重错误
- 解决vnc server看不到图形界面的问题