Java NIO框架Mina、Netty、Grizzly介紹與對比(zz)
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,無論是官方仍是民間,都不多見到其文
歡迎關注本站公眾號,獲取更多信息