java NIO框架:mina、netty、Grizzly比較

Mina:

Mina(Multipurpose Infrastructure for Network Applications) 是 Apache 組織一個較新的項目,它爲開發高性能和高可用性的網絡應用程序提供了非常便利的框架。當前發行的 Mina 版本2.04支持基於 Java NIO 技術的 TCP/UDP 應用程序開發、串口通訊程序,Mina 所支持的功能也在進一步的擴展中。目前,正在使用 Mina的應用包括:Apache Directory Project、AsyncWeb、AMQP(Advanced Message Queuing Protocol)、RED5 Server(Macromedia  Flash Media RTMP)、ObjectRADIUS、 Openfire等等。

Netty:

Netty是一款異步的事件驅動的網絡應用框架和工具,用於快速開發可維護的高性能、高擴展性協議服務器和客戶端。也就是說,Netty是一個NIO客戶端/服務器框架,支持快速、簡單地開發網絡應用,如協議服務器和客戶端。它極大簡化了網絡編程,如TCP和UDP套接字服務器。


Grizzly:

 Grizzly是一種應用程序框架,專門解決編寫成千上萬用戶訪問服務器時候產生的各種問題。使用JAVA NIO作爲基礎,並隱藏其編程的複雜性。容易使用的高性能的API。帶來非阻塞socketd到協議處理層。利用高性能的緩衝和緩衝管理使用高性能的線程池。


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


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

其次,從項目的出身來看,Mina出身於開源界的大牛Apache組織,Netty出身於商業開源大亨Jboss,而Grizzly則出身於土鱉Sun公司。從其出身可以看到其應用的廣泛程序,到目前爲止,我見到業界還是使用Mina多一些,而Netty也在慢慢的應用起來,而Grizzly則似乎只有Sun自已的項目使用了,如果還有其他的公司或開源項目在使用,那就算我孤陋寡聞。


最後,從入門的文檔來說,由於Mina見世時間相對較長,官方以及民間的文檔與入門示例都相當的多。Netty的官方文檔也做得很好,而民間文檔就要相對於Mina少一些了。至於Grizzly,不管是官方還是民間,都很少見到其文檔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章