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