Tomcat / Web服务器与Java NIO /网络框架

目前,对于一个类,我正在实现一个服务器,它使用TCP和自定义应用程序层协议接收两种类型的连接。 虽然对于课程来说,这就是项目需要完成的方式,但我想知道使用像Tomcat或类似的Web服务器来接收所有传入通信的优点/缺点,而不是使用Java的NIO或像Mina这样的网络框架(我正在使用)或Netty(我想在某些时候玩这个)。

虽然我特别询问Java(因为这是我最熟悉的),但我们非常欢迎您将其扩展到任何其他语言。

我正在寻找关于性能,易用性,可扩展性的评论(包括它在开发方面和使用方面的规模),安全性以及您认为可以提供信息的任何其他基础。

无论如何,任何输入将不胜感激。

此致,奥马尔费雷尔

我认为历史可以解释答案。

Tomcat早于Java NIO多年。 当时认为传入请求和一个线程池的队列,每个请求一个线程是最好的。

数据表明Java NIO更好地扩展,JBOSS现在维护并使用它。

我不会惊讶地发现Tomcat被重构为使用Netty。

自从版本6发布以来,Tomcat本身已经能够使用NIO和NIO连接器。 所以,NIO的善良,以及Tomcat在整个地方的团结一致。 我知道我选择哪一个。 ;)

恕我直言,当您处理HTTP时,Tomcat的优势就存在了。 对于HTTP,我会使用Tomcat,因为它简化了很多东西,但对于纯TCP我没有看到任何优势,所以我建议使用更简单的方法。

Tomcat传统上与Java Servlets和HTTP一起使用。 如果您使用Java构建Web应用程序,则可以使用Tomcat。 如果您只是想在两个程序之间使用TCP / IP进行通信,那么使用网络框架可能会更容易。