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