Tomcat:使用NIO虽然没有配置?

时间:2015-03-15 07:19:18

标签: tomcat

根据以下文章:http://java.dzone.com/articles/understanding-tomcat-nio,了解Tomcat实例是否使用NIO(而不是BIO)的方法是查找:

INFO: Initializing ProtocolHandler ["http-nio-8080"]

在我的Tomcat服务器上,我有:

grep "Initializing ProtocolHandler" /opt/tomcat/logs/*
/opt/tomcat/logs/catalina.2015-02-23.log:23-Feb-2015 15:20:00.627 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
/opt/tomcat/logs/catalina.2015-02-23.log:23-Feb-2015 15:20:00.665 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]

但是我的server.xml不包含任何告诉它使用NIO的内容,我的连接器如下所示:

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

换句话说,我没有将协议设置为使用org.apache.coyote.http11.Http11NioProtocol,如上文所述。

服务器似乎还在使用NIO?

- 补充资料

  • Tomcat版本:8.0.15.0
  • JVM版本:1.8.0_25-b17
  • 正在使用Spring MVC。

提前谢谢

1 个答案:

答案 0 :(得分:3)

  

但是我的server.xml确实包含任何告诉它使用NIO的内容,

NIO是Tomcat 8的默认HTTP和AJP连接器实现。

  

默认的HTTP和AJP连接器实现已从中切换   Java阻塞IO实现(BIO)到Java非阻塞IO   实施(NIO)。仍然可以使用BIO,但Servlet 3.1和   使用非阻塞IO的WebSocket 1.0功能将使用阻塞   相反,IO可能会导致意外的应用程序行为。

http://tomcat.apache.org/migration-8.html#Default_connector_implementation