Tomcat Http11NioProtocol 的缺点

19

在Tomcat 6.0.x中,我们可以使用Http11NioProtocol来获得可伸缩的性能。使用Http11NioProtocol的特定原因/缺点是否存在,以致于Tomcat没有将其作为默认协议使用?

1个回答

31
在NIO的一般情况下,通常需要运行一些生产基准测试来确保你获得了你认为的性能。请记住,Http11NioProtocol 做了一些奇怪的事情,比如模拟阻塞以实现插件连接器的行为 - 这不是免费的,并且可能会比默认的Http11Protocol连接器表现差。
我们对使用默认的Http11Protocol连接器的webapp的性能感到满意。在五年前的硬件上每月处理数亿个HTTP请求。
如果性能真的是一个问题,你应该考虑采取更加劳动密集的步骤使用AJP连接器Http11AprProtocol。它是部分用C编写的本地连接器,据说速度更快。但是让它运行起来需要更多的操作而不仅是修改server.xml文件。
我个人曾经在与第三方开源API库(OpenAMF,一个过时的AMF0 POJO库)和Http11NioProtocol一起使用时遇到过问题。也就是说,它不能正常工作。但如果对你有用,那很好。
总之:
  • NIO连接器的好处存在争议
  • 运行基准测试
  • 考虑使用AJP连接器

1
tc在8版本中将NIO作为默认连接器。(Http11Protocol现在意义不同了。) - Daniil Iaitskov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接