Tomcat 的三种运行模式【bio、nio、apr】

发布时间:2018-08-02作者:laosun阅读(845)

Tomcat

    这三种模式的不同之处如下:

    BIO:

    一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。

    Tomcat7或以下,在Linux系统中默认使用这种方式。

    默认的模式,性能非常低下,没有经过任何优化处理和支持

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

    NIO:

    利用Java的异步IO处理,可以通过少量的线程处理大量的请求。

    Tomcat8在Linux系统中默认使用这种方式。

    Tomcat7必须修改Connector配置来启动:

    它拥有比传统I/O操作(bio)更好的并发运行性能。

    <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。

    (安装方法:自己去百度一下即可)

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

    总结: 

    个人觉得在 tomcat bio、nio、apr 模式中,每种都会有各自适用的场合,也不能说哪个好那个不好,就像 tomcat 内存方面的配置,如果内存设置的过大,gc 垃圾回收机制就会变慢;如果内存设置的过小,tomcat又会出现内存溢出的情况,所以设置在一个合适的范围很重要,不仅不会出错,并且gc回收频繁使性能达到一个最优的结果。当然,这也需要根据不同的场合进行不同的测试才能产生最优的结果!


0 +1

版权声明

 Java  安全  服务端  tomcat

 请文明留言

0 条评论