Tomcat连接池的配置涉及不同的IO模型,包括NIO(Non-blocking IO,非阻塞IO)、APR(Apache Portable Runtime,Apache可移植运行库)和BIO(Blocking IO,阻塞IO)。以下是这三种IO模型的对比:
一、概述
-
NIO:
- Java SE 1.4及后续版本提供的一种新的IO操作方式。
- 基于缓冲区,并能提供非阻塞IO操作的Java API。
- 拥有比传统IO操作(BIO)更好的并发运行性能。
-
APR:
- Tomcat以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作。
- 从操作系统级别来解决异步的IO问题,能大幅度提高性能。
- 提供高度可扩展性以及优越的性能,并且可以更好地与本地服务器技术集成。
-
BIO:
- 传统的Java IO操作,即java.io包及其子包。
- 性能相对较差,没有经过任何优化处理和支持。
- 在高版本的Tomcat中,BIO模式逐渐被淘汰,Tomcat 9中甚至删除了BIO模式的实现。
二、配置与性能对比
-
配置:
- NIO:在Tomcat的配置文件中,将Connector的prot