之前文章【Mina學(xué)習(xí)極其有效方法推薦】提到過,在開始Mina入門之前,最好先對現(xiàn)有的主流Java NIO框架作一個簡單的了解,本文對Java NIO框架Mina、Netty、Grizzly作簡單的介紹與對比。
我們先來看看三者之間的簡介。
Mina:
Mina(Multipurpose Infrastructure for Network Applications) 是 Apache 組織一個較新的項目,它為開發(fā)高性能和高可用性的網(wǎng)絡(luò)應(yīng)用程序提供了非常便利的框架。當前發(fā)行的 Mina 版本2.04支持基于 Java NIO 技術(shù)的 TCP/UDP 應(yīng)用程序開發(fā)、串口通訊程序,Mina 所支持的功能也在進一步的擴展中。目前,正在使用 Mina的應(yīng)用包括:Apache Directory Project、AsyncWeb、AMQP(Advanced Message Queuing Protocol)、RED5 Server(Macromedia Flash Media RTMP)、ObjectRADIUS、 Openfire等等。
Netty:
Netty是一款異步的事件驅(qū)動的網(wǎng)絡(luò)應(yīng)用框架和工具,用于快速開發(fā)可維護的高性能、高擴展性協(xié)議服務(wù)器和客戶端。也就是說,Netty是一個NIO客戶端/服務(wù)器框架,支持快速、簡單地開發(fā)網(wǎng)絡(luò)應(yīng)用,如協(xié)議服務(wù)器和客戶端。它極大簡化了網(wǎng)絡(luò)編程,如TCP和UDP套接字服務(wù)器。
Grizzly:
Grizzly是一種應(yīng)用程序框架,專門解決編寫成千上萬用戶訪問服務(wù)器時候產(chǎn)生的各種問題。使用JAVA NIO作為基礎(chǔ),并隱藏其編程的復(fù)雜性。容易使用的高性能的API。帶來非阻塞socketd到協(xié)議處理層。利用高性能的緩沖和緩沖管理使用高性能的線程池。
OK,我們現(xiàn)在可以看看三者的簡單對比了。
首先,從設(shè)計的理念上來看,Mina的設(shè)計理念是最為優(yōu)雅的。當然,由于Netty的主導(dǎo)作者與Mina的主導(dǎo)作者是同一人,出自同一人之手的Netty在設(shè)計理念上與Mina基本上是一致的。而Grizzly在設(shè)計理念上就較差了點,幾乎是Java NIO的簡單封裝。
其次,從項目的出身來看,Mina出身于開源界的大牛Apache組織,Netty出身于商業(yè)開源大亨Jboss,而Grizzly則出身于土鱉Sun公司。從其出身可以看到其應(yīng)用的廣泛程序,到目前為止,我見到業(yè)界還是使用Mina多一些,而Netty也在慢慢的應(yīng)用起來,而Grizzly則似乎只有Sun自已的項目使用了,如果還有其他的公司或開源項目在使用,那就算我孤陋寡聞。
最后,從入門的文檔來說,由于Mina見世時間相對較長,官方以及民間的文檔與入門示例都相當?shù)亩?。Netty的官方文檔也做得很好,而民間文檔就要相對于Mina少一些了。至于Grizzly,不管是官方還是民間,都很少見到其文檔。
經(jīng)過以上的介紹與簡單對比,Mina、Netty、Grizzly三者您選擇哪位美女呢?可以在評價中寫寫哦。
聯(lián)系客服