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

微信搜索【阿丸筆記】,關注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…(歷史文章查閱非常方便)

Tags: