打算寫一些Netty的文章了,先聊聊為什麼要學習Netty

阿丸發表於2021-01-11

微信搜尋【阿丸筆記】,關注Java/MySQL/中介軟體各系列原創實戰筆記,乾貨滿滿。

2021年了,終於開始系統性總結Netty相關的東西了。

打算寫一些Netty的文章了,先聊聊為什麼要學習Netty

 

這會是Netty系列的第一篇,我想先聊聊 “為什麼要學習Netty”。

  • 繞不開的程式設計框架
  • Java進階之梯
  • 面試“絕招”
  • 一個小小的心結

1.繞不開的框架

說到Netty,相信所有做Java後端開發的同學都應該聽說過。
這是一個再經典不過、且仍然被廣泛使用的網路程式設計框架。
就我接觸過並看過原始碼的開源專案,可以說基本上都是使用Netty作為網路通訊的底層框架,包括Dubbo、RocketMQ、Canal、otter、HBase等等。

所以,我始終認為,學習Java,Netty是一個繞不開的框架。

能徹底掌握一個如此必不可少的底層框架,是非常有必要的。

2.Java進階之梯

一個應用如此廣泛的東西,並不意味著簡單。

很多同學可能知道Netty,甚至使用過Netty,但是如果要深入探討技術細節,或者借鑑Netty來優化自己的專案,可能就會力不從心了。
Netty作為一個眾所周知的高效能網路程式設計框架,有太多值得我們學習的技術細節和核心原理。
包括但不限於:

  • 網路IO模型
  • 多執行緒模型
  • 記憶體管理
  • 高效能資料結構
  • 設計模式

如果能將Netty中的這些技術細節徹底掌握,那麼我們對於網路程式設計、作業系統、Java程式語言的理解,都將邁上一個全新的臺階。

3.面試“絕招”

除了提升技術水平之外,另一個大家比較重視的就是面試了。

對於中高階的後端開發面試中,Netty相關的知識點也是面試中絕對的高頻試題。
隨便舉幾個例子,相信大家都曾經碰到過:

  • Netty的粘包/拆包是怎麼處理的,有哪些實現?
  • 同步與非同步、阻塞與非阻塞的區別?
  • BIO、NIO、AIO分別是什麼?
  • select、poll、epoll的機制及其區別?

所以,深入學習Netty,也是跳槽面試、升職加薪的必備“絕招”。

4.一個小小的心結

剛剛工作的時候,我們組有個技術大佬,非常非常強。基本上公司出現任何線上問題,沒有他解決不了的。
我有幸一畢業就在他的指導下進行工作,教會了我很多技術知識和技術成長路線。
我記得他當時跟我說過,

如果有時間,一定要系統性地學習Netty。如果沒有掌握Netty的核心原理,那麼永遠都是Java的初學者。

工作了幾年,我心裡仍然念念不忘這句話。
雖然零零散散也看過不少Netty的相關原理與技術部落格,但是總歸是淺嘗輒止。
2021年了,給自己定個小目標,一定要 系統地、深入地、有實踐地 掌握Netty,修煉好“內功”。


如果你也有興趣,歡迎跟著我一起看一看、練一練吧。

我會盡量結合原始碼與實戰案例來剖析Netty 的核心技術原理,能在工作中有所輸出,避免踩坑。

同時,也會結合高頻面試題,將回答要點精煉出來。

 

都看到最後了,原創不易,點個關注,點個贊吧~
文章持續更新,可以微信搜尋「阿丸筆記 」第一時間閱讀,回覆【筆記】獲取Canal、MySQL、HBase、JAVA實戰筆記,回覆【資料】獲取一線大廠面試資料。
知識碎片重新梳理,構建Java知識圖譜:github.com/saigu/JavaK…(歷史文章查閱非常方便)

相關文章