Java Netty簡介


Netty和Mina是Java世界非常知名的通訊框架。它們都出自同一個作者,Mina誕生略早,屬於Apache基金會,而Netty開始在Jboss名下,后來出來自立門戶netty.io(http://netty.io/)。

Netty是一個基於JAVA NIO類庫的異步通信框架,它的架構特點是:異步非阻塞、基於事件驅動、高性能、高可靠性和高可定制性。

 

NIO

Netty 是基於NIO的,那NIO又如何呢?

Java在JDK 1.4版本之后才開始支持異步IO,其實NIO也是使用操作系統的IO模型,但在各操作系統上的實現方式也不太一樣

在Windows系統使用的是Select模型,而不是性能更高的IOCP,原因就是並非所有Windows都支持IOCP,IOCP在windows NT 3.5中被引入,只支持WindowsNT和windows 2000。(參考:http://www.cnblogs.com/jobs/archive/2006/11/22/568023.html)

在Linux系統上使用的是多路復用IO,JDK 6之前用的是poll模型,JDK 7中使用epoll。(參考:http://www.cnblogs.com/jobs/archive/2006/11/22/568022.html

AIO

JDK 7中出現了AIO,其實AIO就是NIO的增強版,因為JDK 6之前用的是poll,JDK 7用的是epoll,而epoll就是poll的增強版。

更多操作系統支持的IO模型請參考:

阻塞與非阻塞、同步與異步 I/O模型
http://www.cnblogs.com/ghj1976/p/3764528.html

 

Java NIO原理 圖文分析及代碼實現
http://weixiaolu.iteye.com/blog/1479656

 

使用Netty的優點

  • 避免之前同步IO的性能缺點;
  • 簡化直接使用NIO的復雜度;

更多請參考:

對於 Netty 的十一個疑問
http://mp.weixin.qq.com/s?__biz=MjM5MzA0ODkyMA==&mid=200882593&idx=1&sn=a6ac2c3f3abcaeda478abfc7cd6b1e4f

 

使用Netty的案例

  • Hadoop的RPC框架Avro使用Netty作為通信框架。它默認采用Netty進行跨節點通信,它的Netty Service基於Netty框架二次封裝實現。
  • 阿里分布式服務框架Dubbo的RPC框架使用Dubbo協議進行節點間通信。阿里分布式服務框架Dubbo的RPC框架使用Dubbo協議進行節點間通信。

Netty的性能

 

 

Netty系列之Netty高性能之道
http://www.infoq.com/cn/articles/netty-high-performance

NIO系列6:流行 NIO Framework netty 和 mina 性能測評與分析
http://blog.csdn.net/mindfloating/article/details/8622930

tomcat、netty以及nodejs的helloworld性能對比
http://my.oschina.net/lifeofpi/blog/120210

100萬並發連接服務器筆記之Java Netty處理1M連接會怎么樣
http://www.blogjava.net/yongboy/archive/2013/05/13/399203.html

Java與與Erlang、C相比,比較麻煩的事情,需要在程序一開始就得准備好它的堆棧到底需要多大空間,換個說法就是JVM啟動參數設置堆內存大小,設置合適的垃圾回收機制,若以后程序需要更多內存,需停止程序,編輯啟動參數,然后再次啟動。總之一句話,就是麻煩。單單JVM的調優,就得持續不斷的根據檢測、信息、日志等進行適當微調。

 

參考資料:

100萬並發連接服務器筆記之Java Netty處理1M連接會怎么樣
http://www.blogjava.net/yongboy/archive/2013/05/13/399203.html

Netty源碼解讀(一)概述
http://ifeve.com/netty1/

Netty教程—Part1—介紹
http://www.importnew.com/7669.html

Netty系列之Netty高性能之道
http://www.infoq.com/cn/articles/netty-high-performance

Netty 學習筆記
http://www.cnblogs.com/artist/p/Netty.html

《Netty 權威指南》—— 4種IO的對比
http://ifeve.com/netty-2-5/ 

Netty NIO 框架性能壓測 – 長鏈接
http://www.oschina.net/question/12_8750


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM