問題:生活中工作中,會有人問我javaNIO框架里面 Netty Mina xSocket Grizzly 等等哪個比較好?
在這里寫一下自己的感受,也算是總結一下吧
在我的印象中。不管是什么NIO框架。本身其實都是對Java底層的一種在封裝。封裝一套更簡便,更易於擴展的一套東西以方便開發者使用。所以性能上也許會有所差異,但是絕對沒有java和C++之間這么多。(代碼寫的太爛的除外,不過想要使用java寫出很爛的代碼也比較困難。)這些框架在性能方面差別不會超過1%。
Mina和Netty開始。因為這兩個NIO框架的創作者是同一個人Trustin Lee (韓國人)。GitHub主頁地址 :https://github.com/trustin。盡管創作者現在已經不專注與開發了。但是框架的后續開發和繼承,可以說都是符合最開始的設定的。兩個框架的架構設計思路基本一致。
Netty從某種程度上講是Mina的延伸和擴展。解決了一些Mina上的設計缺陷,也優化了一下Mina上面的設計理念。
另一方面Netty相比較Mina更容易學習。API更簡單。詳細的范例源碼和API文檔。更活躍的論壇和社區。更高的代碼更新維護速度。
我想不出什么理由來不選擇Netty。
xSocket:是一個輕量級的基於nio的服務器框架用於開發高性能、可擴展、多線程的服務器。該框架封裝了線程處理、異步讀/寫等方面。(只是對Java的NIO做了最簡單的封裝,以便於開發使用。)
Grizzly : 是一種應用程序框架,專門解決編寫成千上萬用戶訪問服務器時候產生的各種問題。使用JAVA NIO作為基礎,並隱藏其編程的復雜性。容易使用的高性能的API。帶來非阻塞socketd到協議處理層。利用高性能的緩沖和緩沖管理使用高性能的線程池。
下面是網絡的一些大神的文章是關於這些NIO框架的。有興趣的大家可以看看
參考一:Netty&Mina : http://www.kankanews.com/ICkengine/archives/82271.shtml :對比的是Netty3 和Mina2
參考二:Grizzly和Netty以及Mina簡單性能對:http://javatar.iteye.com/blog/1126171 :
參考三: tomcat、netty以及nodejs的helloworld性能對比 : http://my.oschina.net/lifeofpi/blog/120210