1 簡介
Netty 由其作者 Trustin Lee

在 2008 年送出第一個commit至今,轉眼間已經走過了十二年。
Netty 本身是基于 Java 中 NIO 接口能力進行封裝而成的架構。對 NIO 的學習和掌握是不可避免的。
可以熟練的使用架構進行業務的開發,僅僅隻是學習剛開了一個頭。隻有深入到架構的内部,對一個結果的背後都了解了“為什麼”,“是什麼”,“怎麼樣”,才能算對架構實作了掌握。而到了這一步,深入的探究源碼是最好的手段。
什麼是 Netty
- 異步事件驅動架構,可快速開發高性能的服務端和用戶端
- 封裝了JDK底層BIO和NIO模型,提供更加簡單易用安全的 API
- 自帶編解碼器解決拆包粘包問題,無需使用者困擾
- reactor線程模型支援高并發海量連接配接
- 自帶各種協定棧
Netty 的特點
-
設計
針對多種傳輸類型的統一接口 - 阻塞和非阻塞
簡單但更強大的線程模型
真正的無連接配接的資料報套接字支援
連結邏輯支援複用
-
易用性
大量的 Javadoc 和 代碼執行個體
除了在 JDK 1.6 + 額外的限制。(一些特征是隻支援在Java 1.7 +。可選的功能可能有額外的限制。)
-
性能
比核心 Java API 更好的吞吐量,較低的延時
資源消耗更少,這個得益于共享池和重用
減少記憶體拷貝
-
健壯性
消除由于慢,快,或重載連接配接産生的 OutOfMemoryError
消除經常發現在 NIO 在高速網絡中的應用中的不公平的讀/寫比
-
安全
完整的 SSL / TLS 和 StartTLS 的支援
運作在受限的環境例如 Applet 或 OSGI
-
社群
釋出的更早和更頻繁
社群驅動
為什麼要研究 Netty
◆各大開源項目選擇Netty作為底層通信架構
◆更好的使用,少走彎路
◆遇到bug ?單機連接配接數上不去?性能遇到瓶頸?如何調優?
◆詳解reactor線程模型 ,實踐中舉-反三
◆龐大的項目是如何組織的 ,設計模式,體驗優秀的設計
◆閱讀源碼其實沒那麼困難
學習 Netty 将解鎖以下成就:
◆掌握Netty底層原理 ,輕松解決各類疑難雜症,深度調優
◆面試加分,網際網路各大架構師的職位,升職加薪,以-檔三
◆給官方提issue