美文网首页
tomcat 三种处理启动模式

tomcat 三种处理启动模式

作者: 喊我小王吧 | 来源:发表于2019-05-08 23:33 被阅读0次

tomcat 三种处理启动模式

Tomcat支持三种接收请求的处理方式:BIO、NIO、APR :

BIO

一个线程处理一个请求,缺点:并发量高时,线程数较多,浪费资源 (Tomcat7或以下,在Linux系统中默认使用这种方式。)

NIO

利用 Java 的异步请求 IO 处理,可以通过少量的线程处理大量的请求(Tomcat8在Linux系统中默认使用这种方式,Tomcat7必须修改Connector配置 protocol="org.apache.coyote.http11.Http11NioProtocol" 来启动)

APR

APR是使用原生C语言编写的非堵塞I/O,利用了操作系统的网络连接功能,速度很快( Tomcat7或Tomcat8在Win7或以上的系统中启动默认使用这种方式。但必须安装apr插件否则以bio方式启动,Linux如果安装了apr和native,Tomcat直接启动就支持apr。(安装方法:http://my.oschina.net/lsw90/blog/181161))

若想修改启动模式:

修改配置文件server.xml中

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

修改为(这里修改为nio)

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

org.apache.coyote.http11.Http11NioProtocol : 表示nio处理类
org.apache.coyote.http11.Http11AprProtocol :表示apr 模式
HTTP/1.1 : 表示bio 模式

三种模式默认配置如下:

bio server.xml 配置

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

nio server.xml 配置

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

apr server.xml 配置

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

三种模式之中 apr , nio ,bio 效率性能逐一降低。

Tomcat启动的时候,可以通过log看到Connector使用的是哪一种运行模式:

Starting ProtocolHandler ["http-bio-8080"]
Starting ProtocolHandler ["http-nio-8080"]
Starting ProtocolHandler ["http-apr-8080"]

相关文章

网友评论

      本文标题:tomcat 三种处理启动模式

      本文链接:https://www.haomeiwen.com/subject/glgboqtx.html