一、Netty簡介
- Netty 是由 JBOSS 提供的一個 Java 開源框架,現爲 Github上的獨立項目。
- Netty 是一個異步的、基於事件驅動的網絡應用框架,用以快速開發高性能、高可靠性的網絡 IO 程序。
- Netty主要針對在TCP協議下,面向Clients端的高併發應用,或者Peer-to-Peer場景下的大量數據持續傳輸的應用。
- Netty本質是一個NIO框架,適用於服務器通訊相關的多種應用場景。
二、Netty應用場景
2.1 互聯網行業
- 互聯網行業:在分佈式系統中,各個節點之間需要遠程服務調用,高性能的 RPC 框架必不可少,Netty 作爲異步高性能的通信框架,往往作爲基礎通信組件被這些 RPC 框架使用。
- 典型的應用有:阿里分佈式服務框架 Dubbo 的 RPC 框架使用 Dubbo 協議進行節點間通信,Dubbo 協議默認使用 Netty 作爲基礎通信組件,用於實現各進程節點之間的內部通信。
2.2 遊戲行業
- 無論是手遊服務端還是大型的網絡遊戲,Java 語言得到了越來越廣泛的應用。
- Netty 作爲高性能的基礎通信組件,提供了 TCP/UDP 和 HTTP 協議棧,方便定製和開發私有協議棧,賬號登錄服務器。
- 地圖服務器之間可以方便的通過 Netty 進行高性能的通信。
2.3 大數據領域
- 經典的 Hadoop 的高性能通信和序列化組件 Avro 的 RPC 框架,默認採用 Netty 進行跨界點通信。
- 它的 Netty Service 基於 Netty 框架二次封裝實現。
三、Netty架構