關於Netty的一些總結

netty

一,netty拷問:

  1. 本質:JBoss做的一個jar包;
  2. 目的:快速開發高性能,高可靠的網絡服務器和客戶端程序;
  3. 優點:提供異步的,事件驅動的網絡應用程序框架和工具;

二,netty的基本信息:

  1. Netty就是基於java NIO技術封裝的一套框架;(爲什麼要封裝呢,因爲原生的javaNIO試用起來沒有那麼方便,而且還有臭名昭著的bug,nettey把它封裝後,提供了一個易於操作的使用模式和接口,用戶使用起來也就便捷多了);
  2. Netty是最流行的NIO框架,其健壯性,功能,性能,可定製性和可擴展行都是首屈一指的;
  3. NIO並不是java獨有的,NIO代表的是io多路複用,它是由操作系統提供的系統調用;
  4. NIO的全稱是NoneBlocking IO,非阻塞IOS,那麼NIO是怎麼做到非阻塞的呢?它用的是事件機制.它可以用一個線程把Accept,讀寫操作,請求處理的邏輯全乾了.如果什麼事都沒得做,它也不會死循環,它會將線程休眠起來,直到下一個事件來了再繼續幹活,這樣的一個線程稱之爲NIO線程.

三,特性:

    設計

  • 統一的API,適用於不同的協議(阻塞和非阻塞)
  • 基於靈活,可擴展的事件驅動模型;
  • 高度可定製的線程模型;
  • 可靠的無連接Socket支持(UDP)

性能

  • 更好的吞吐量,低延遲;
  • 更省資源;
  • 儘量減少不必要的內存拷貝;

安全

  • 完整的SSL/TLS和STARTTLS的支持;
  • 能在Applet和Android的限制環境運行良好;

健壯性

  • 不再因過快,過慢或超負載連接導致OutOfMemoryError;
  • 不再有在高速網絡環境下NIO讀寫頻率不一致的問題;

易用

  • 完善的JavaDoc,用戶指南和樣例;
  • 簡潔簡單;
  • 僅依賴於JDK1.5

四,應用場景:

  • 互聯網行業:在分佈式系統中,各個節點之間需要遠程服務調用,高性能的RPC框架必不可少,Netty作爲異步高新能的通信框架,往往作爲基礎通信組件被這些RPC框架使用,典型的應用有:阿里分佈式服務框架Dubbo的RPC框架使用Dubbo協議進行節點間通信,Dubbo協議默認使用Netty作爲基礎通信組件,用於實現各進程節點之間的內部通信;
  • 遊戲行業:無論是手遊服務端還是大型的網絡遊戲,Java語言得到了越來越廣泛的應用.Netty作爲高性能的基礎通信組件,它本身提供了TCP/UDP和HTTP協議棧,非常方便定製和開發私有協議棧.賬號登錄服務器,地圖服務器之間可以方便的通過Netty進行高性能的通信;
  • 大數據領域:經典的Hadoop的高性能通信和序列化組件Avro的RPC框架,默認採用Netty進行跨界點通信,它的Netty Service基於Netty框架二次封裝實現;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章