Tomcat为什么不使用NIO作为默认IO模型?
首先感谢邀请
首先
Tomcat附带3个HTTP(s)连接器:
NIO(org.apache.coyote.Http11Protocol):这是默认且最稳定的连接器。
BIO(org.apache.coyote.Http11NioProtocol):这是一个非阻塞的IO连接器,在大多数情况下应该提供稍好的性能。
APR(org.apache.coyote.Http11AprProtocol):此连接器使用Apache Portable Runtime和OpenSSL而不是Java对应物。因此,性能通常更好,尤其是在使用SSL时。
自己可以通过配置调整 tomcat连接器。
tomcat官网解释如下
大概意思。
默认的HTTP和AJP连接器实现已从Java阻塞IO实现(BIO)切换到Java非阻塞IO实现(NIO)。仍然可以使用BIO,但使用非阻塞IO的Servlet 3.1和WebSocket 1.0功能将使用阻塞IO,这可能会导致意外的应用程序行为。
究其根本就是tomcat实现 主要是servlet,只能使用BIO,如果调整为NIO模式可能会出现未知异常。
本人可以公司程序员,专注互联网技术,大家可以专注我哈
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有