天天看點

Netty 源碼閱讀入門實戰(一)-介紹1 簡介什麼是 NettyNetty 的特點為什麼要研究 Netty學習 Netty 将解鎖以下成就:

1 簡介

Netty 由其作者 Trustin Lee

Netty 源碼閱讀入門實戰(一)-介紹1 簡介什麼是 NettyNetty 的特點為什麼要研究 Netty學習 Netty 将解鎖以下成就:

在 2008 年送出第一個commit至今,轉眼間已經走過了十二年。

Netty 源碼閱讀入門實戰(一)-介紹1 簡介什麼是 NettyNetty 的特點為什麼要研究 Netty學習 Netty 将解鎖以下成就:

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