Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式

来源:互联网 发布:数据分析职业 编辑:程序博客网 时间:2024/04/30 14:30

Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式

12月12日北京OSC源创会 —— 开源技术的年终盛典 »  

tomcat的运行模式有3种.修改他们的运行模式.3种模式的运行是否成功,可以看他的启动控制台,或者启动日志.或者登录他们的默认页面http://localhost:8080/查看其中的服务器状态。 

1)bio 

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

2)nio 

利用java的异步io护理技术,no blocking IO技术. 

想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为 

 <Connector port="80" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" URIEncoding="UTF-8" useBodyEncodingForURI="true" enableLookups="false" redirectPort="8443" /> 

启动后,就可以生效。 

3)apr 

安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能. 

必须要安装apr和native,直接启动就支持apr。下面的修改纯属多余,仅供大家扩充知识,但仍然需要安装apr和native 

如nio修改模式,修改protocol为org.apache.coyote.http11.Http11AprProtocol

鉴客鉴客
发帖于 5年前
15回/21493阅
标签: Tomcat
  • 举报 
  • | 分享到
2收藏(30)

按默认排序  显示最新评论  共有15个评论 (最后回答: 6个月前 )

    0
  • 疯狂的艺术家

    原来还可以这样啊

    评论(0)| 引用此评论| 举报 (2011-02-21 11:02)
    0
  • kfpanda11

    不错

    评论(0)| 引用此评论| 举报 (2011-02-21 11:35)
    0
  • 门徒

    护理技术?

    评论(0)| 引用此评论| 举报 (2011-02-21 11:51)
    0
  • 职通网

    不知道oschina的tomcat有没有安装 apr 支持呢??

    评论(0)| 引用此评论| 举报 (2011-02-21 12:24)
    0
  • SeanCai

    建议楼主换个图像!!!!!

    评论(0)| 引用此评论| 举报 (2011-02-21 18:44)
    0
  • 浪子一号

    楼主验证过了没有的???

    评论(0)| 引用此评论| 举报 (2011-03-30 16:56)
    0
  • sunyh

     <Connector port="8089" protocol="HTTP/1.1" 

                   connectionTimeout="20000" 

                   redirectPort="8443" />

    7.0中是这样的,好像和您的不一样啊。 

    评论(0)| 引用此评论| 举报 (2011-03-30 17:23)
    0
  • ddatsh

    不是有4个?

    Tomcat的四种基于HTTP协议的Connector性能比较
    <Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"                           connectionTimeout="20000" redirectPort="8443"/>
    <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000"
                   redirectPort="8443"/>
    <Connector executor="tomcatThreadPool"
                   port="8081" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    <Connector executor="tomcatThreadPool"
                   port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   connectionTimeout="20000"
                   redirectPort="8443" />

    我们姑且把上面四种Connector按照顺序命名为 NIO, HTTP, POOL, NIOP

    为了不让其他因素影响测试结果,我们只对一个很简单的jsp页面进行测试,这个页面仅仅是输出一个Hello World。假设地址是 http://tomcat1/test.jsp

    我们依次对四种Connector进行测试,测试的客户端在另外一台机器上用ab命令来完成,测试命令为: ab -c 900 -n 2000 http://tomcat1/test.jsp ,最终的测试结果如下表所示(单位:平均每秒处理的请求数):



    NIO HTTP POOL NIOP
    281 65 208 365
    666 66 110 398
    692 65 66 263
    256 63 94 459
    440 67 145 363

    由这五组数据不难看出,HTTP的性能是很稳定,但是也是最差的,而这种方式就是Tomcat的默认配置。NIO方式波动很大,但没有低于280 的,NIOP是在NIO的基础上加入线程池,可能是程序处理更复杂了,因此性能不见得比NIO强;而POOL方式则波动很大,测试期间和HTTP方式一样,不时有停滞。

    由于linux的内核默认限制了最大打开文件数目是1024,因此此次并发数控制在900。

    尽管这一个结果在实际的网站中因为各方面因素导致,可能差别没这么大,例如受限于数据库的性能等等的问题。但对我们在部署网站应用时还是具有参考价值的。

    评论(0)| 引用此评论| 举报 (2011-03-30 17:45)
    0
  • 叫我蝴蝶吧
    jpr, ajp, http11 and memory connector protocol
    评论(0)| 引用此评论| 举报 (2012-11-24 11:57)
    0
  • 菠萝啊哈哈
    mark

0 0
原创粉丝点击