Tomcat 的 Connector 有三种运行模式
1. BIO(blocking I/O):同步阻塞 IO
表示 Tomcat 使用的是传统的 Java I/O 操作(即java.io包及其子包)。Tomcat 在默认情况下,就是以 bio 模式运行的。一般而言 bio 模式是三种运行模式中性能最低的一种。
客户端连接不高时候还行,百万级不行
2. NIO(No blocking, New I/O):同步非阻塞 IO
Java 的 NIO:有一个非常重要的选择器(Selector)的概念,也称为多路复用器。
通过它,只需要一个线程便可以管理多个客户端连接,当客户端数据到了之后,才会为其服务
要让 Tomcat 以 nio 模式来运行只需要在 Tomcat 安装目录/conf/server.xml文件中将 Connector 节点的 protocol 配置成org.apache.coyote.http11.Http11NioProtocol即可。
3. AIO(Asynchronous I/O):异步 IO
- 异步 IO 基于时间和回调机制实现的:也就是应用操作之后会直接返回,不会阻塞在那里
- 当后台处理完成后,操作系统会通知相应的线程进行后续的操作