因為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呢?


推薦閱讀:
相關文章