JBoss Netty 3.1發布 新增HTTP隧道功能
JBoss社區最近發布了Netty 3.1.0,為用戶提供了編寫客戶/服務網絡應用的另一選擇。Netty是一款異步的事件驅動的網絡應用框架和工具,用于快速開發可維護的高性能、高擴展性協議服務器和客戶端。也就是說,Netty是一個NIO客戶端/服務器框架,支持快速、簡單地開發網絡應用,如協議服務器和客戶端。它極大簡化了網絡編程,如TCP和UDP套接字服務器。
關于Netty的分類,它與Apache Mina和Grizzly屬于同一舞臺。該最新版本包含了一系列功能和性能、API可用性的增強。其中包括:
◆更簡單的大數據流
◆更多可靠的OutOfMemoryError預防機制
◆新的傳輸,包括基于OIO和NIO的UDP傳輸、VM內傳輸和HTTP隧道
◆與Google Protocol Buffers集成
◆與JBoss Microcontainer、OSGI、Guice和Spring集成
HTTP隧道功能滿足了用戶的迫切需求,在早期發布說明中總結到:
HTTP隧道傳輸(位于org.jboss.netty.channel.socket.http)是一種套接字傳輸,支持任意已經存在的套接字應用在HTTP之上通過代理傳輸。這種傳輸在需要越過防火墻而不修改現存服務器應用時特別有用。工作原理如下:
Http隧道客戶端套接字通道 --> 對HTTP友好的防火墻 --> Servlet容器 (如Tomcat、Jetty) --> Http隧道Servlet --> 你的服務器應用
當然在選擇一個框架用于開發網絡應用時,性能和可擴展性是重要因素。Netty團隊在他們的網站上提供了性能信息。你也可以在Apache Mina網站上找到它的性能數據。Nicholas Hagen發布了一系列博文,記錄了他如何選擇 Mina、Grizzly或者Netty。最終他決定選用Netty,不過指出:
總的來說,在性能、內存和功能使用方面,我傾向于Netty,而不是Mina和Grizzly。請注意你需要通過自己的分析來決定哪種框架適合你的需求。
【編輯推薦】