Java NIO框架Mina、Netty、Grizzly介紹與對比

鍾超發表於2012-12-26

Java NIO框架Mina、Netty、Grizzly介紹與對比

Mina

Mina(Multipurpose Infrastructure for Network Applications) 是 Apache組織一個較新的專案,它為開發高效能和高可用性的網路應用程式提供了非常便利的框架。當前發行的 Mina 版本2.04支援基於 JavaNIO 技術的 TCP/UDP 應用程式開發、串列埠通訊程式,Mina 所支援的功能也在進一步的擴充套件中。目前,正在使用Mina的應用包括:Apache Directory Project、AsyncWeb、AMQP(Advanced MessageQueuing Protocol)、RED5 Server(Macromedia? FlashMedia RTMP)、ObjectRADIUS、 Openfire等等。

Netty

Netty是一款非同步的事件驅動的網路應用框架和工具,用於快速開發可維護的高效能、高擴充套件性協議伺服器和客戶端。也就是說,Netty是一個NIO客戶端/伺服器框架,支援快速、簡單地開發網路應用,如協議伺服器和客戶端。它極大簡化了網路程式設計,如TCP和UDP套接字伺服器。

Grizzly

Grizzly是一種應用程式框架,專門解決編寫成千上萬使用者訪問伺服器時候產生的各種問題。使用JAVANIO作為基礎,並隱藏其程式設計的複雜性。容易使用的高效能的API。帶來非阻塞socketd到協議處理層。利用高效能的緩衝和緩衝管理使用高效能的執行緒池。

結語

OK,我們現在可以看看三者的簡單對比了。

首先,從設計的理念上來看,Mina的設計理念是最為優雅的。當然,由於Netty的主導作者與Mina的主導作者是同一人,出自同一人之手的Netty在設計理念上與Mina基本上是一致的。而Grizzly在設計理念上就較差了點,幾乎是JavaNIO的簡單封裝。

其次,從專案的出身來看,Mina出身於開源界的大牛Apache組織,Netty出身於商業開源大亨Jboss,而Grizzly則出身於土鱉Sun公司。從其出身可以看到其應用的廣泛程式,到目前為止,我見到業界還是使用Mina多一些,而Netty也在慢慢的應用起來,而Grizzly則似乎只有Sun自已的專案使用了,如果還有其他的公司或開源專案在使用,那就算我孤陋寡聞。 最後,從入門的文件來說,由於Mina見世時間相對較長,官方以及民間的文件與入門示例都相當的多。Netty的官方文件也做得很好,而民間文件就要相對於Mina少一些了。至於Grizzly,不管是官方還是民間,都很少見到其文件。

-

轉載請註明來自:http://www.24xuexi.com/w/2011-11-14/98277.html

-

相關文章