因为servlet规范,tomcat要实现servlet规范所以不能最大发挥NIO的特性,servlet3.0之前完全是同步阻塞模型,在read http body 以及 response的情况下,即使tomcat选择 NIO的 connector也是模拟阻塞的行为,因为servlet规范规定的就是这样。

netty不用遵循servlet规范,可以最大化发挥NIO的特性,性能更高一些。但对于多数业务来讲tomcat的connector已经足够了。

希望上面的回答对你有所帮助,如果还是不懂或者有问题,可以关注今日头条「小熊社长」头条号,私信我。希望能够对楼主有所帮助。如果喜欢请转发。


tomcat用的是Apache的MINA网路库,可以说是第一代Java网路库,并且也支持NIO了。既然都有了这些库了,功能也不差,为什么不继续开发MINA的功能,反而自废武功,去换成Netty呢?


推荐阅读:
相关文章