Netty高效能大容量Socket併發 二
阿新 • • 發佈:2019-02-20
Netty簡介
Netty是由JBOSS提供的一個Java開源框架。Netty提供非同步的、事件驅動的網路應用程式框架和工具,用以快速開發高效能、高可靠性的網路伺服器和客戶端程式。和傳統BIO不同,NIO是非阻塞的,和傳統BIO不同,NIO相當於是執行緒池方式的BIO,相比BIO一個連線一個執行緒,NIO能支援更多的連線。BIO適合流量很高的應用,如檔案傳輸,NIO適合流量不高,但是併發很高的應用,如聊天、推送。如果既要高併發,又要高流量的可以選擇AIO。
Netty隨著最近幾年的發展,特別是跟著雲端計算、大資料的流行,很多開源分散式框架都使用了Netty作為通訊框架,如:Hadoop、Storm、 Spark、Facebook、Twitter、阿里巴巴都在使用的Java高效能NIO通訊框架,Netty經過多年打磨,其穩定性和效能達到了非常高的程度。
Netty架構
Netty之所以能夠提供高併發和高效能的通訊,主要是由以下原因形成的:
- 零拷貝記憶體池;
- 非同步非阻塞通訊模型;
- 高效的Reactor執行緒模型;
- 無鎖化的序列設計;
- 高效的併發程式設計;
- 高效能的序列化框架;