2011-04-01 30 views
1

目前,我正在實現一個服務器,它使用TCP和自定義應用層協議來接收兩種類型的連接。雖然對於課堂而言,這是項目需要完成的方式,但我想知道使用諸如Tomcat或類似的Web服務器來接收所有傳入通信的優點/缺點,與使用Java的NIO或像Mina這樣的網絡框架(我正在使用)或Netty(我想在某些時候玩弄)。Tomcat/Web服務器與Java NIO /網絡框架

雖然我正在問關於Java(因爲這是我最舒服的),但我們非常歡迎您將其擴展到任何其他語言。

我正在尋找關於性能,易用性,可擴展性(如何擴展開發智慧和使用方式),安全性以及您認爲可能提供信息的任何其他基礎的評論。

反正,任何輸入將不勝感激。

問候, 奧馬爾·費雷爾

回答

1

我認爲歷史可以回答一些問題。

Tomcat早於Java NIO多年。當時的想法是傳入請求和一個線程池隊列,每個請求一個線程是最好的。

數據表明Java NIO的擴展性更好,JBOSS現在維護並使用它。

我不會驚訝地發現Tomcat被重構爲使用Netty。

+0

「數據表明Java NIO擴展性更好,JBOSS現在維護並使用它。」 這讓我感興趣。你能否指點我一些關於這種更好的可擴展性的閱讀材料? – chamakits 2011-04-02 06:16:05

+2

也許用谷歌搜索「java nio scalability」會給你這樣的東西:http://javanio.info/filearea/nioserver/NIOServerMark2.pdf – duffymo 2011-04-02 17:41:08

+0

這不應該被接受的答案。如下所述,Tomcat已經能夠使用NIO連接器多年。 Tomcat是一個不需要使用Netty的超集。 Tomcat性能可能是Java EE servlet容器中最好的。 – Hal50000 2016-03-25 18:20:34

1

恕我直言,Tomcat的優勢,當你在處理HTTP存在。對於HTTP,我會使用Tomcat,因爲它簡化了很多事情,但對於純TCP而言,我看不出任何優勢,因此我建議使用更簡單的方法。

1

Tomcat傳統上與Java Servlets和HTTP一起使用。如果您正在使用Java構建Web應用程序,那麼Tomcat就是最好的選擇。如果您只是想在兩個程序之間使用TCP/IP進行通信,那麼使用網絡框架可能會更容易。

3

自從版本6發佈以來,Tomcat本身已經能夠使用NIO以及NIO連接器。所以,NIO的善良,和Tomcat一直在各處團結一致。 I know which one I'm choosing.;)