Netty環境搭建(源碼死磕2)

【正文】netty源碼  死磕2: 

環境搭建

本小節目錄


1. Netty爲什麼火得屌炸天?
1.1. Netty是什麼?
1.2. Netty火到什麼程度呢?
1.3. Netty爲什麼這麼火?
2. Netty是面試的必殺器嗎?
3. 獲取源碼的注意事項
4. Netty工程
5. 運行 example



1. Netty爲什麼火得屌炸天?

1.1. Netty是什麼?


Netty是JBOSS提供的一個Java開源框架NIO框架,用以快速開發高併發、高可用、高可靠性的網絡服務器程序,和也能開發高可用、高可靠客戶端程序。

1.2. Netty火到什麼程度呢?


Netty已經得到成百上千的分佈式中間件、開源項目、商業項目的應用。比如火爆的kafka、RocketMQ等消息中間件。如火熱火熱的ElasticSearch開源搜索引擎,都使用了Netty。如大數據處理Hadoop的RPC框架Avro以及主流的分佈式通信框架Dubbo,都使用了Netty。

應該來說,使用Netty的火爆項目,已經有點數不過來了..........


1.3. Netty爲什麼這麼火?


Netty提供異步的、事件驅動的網絡應用程序框架和工具,相比JDK原生NIO,Netty提供了相對十分簡單易用的API,非常適合網絡編程。Netty是完全基於NIO實現的,所以Netty是異步的。

作爲一個異步NIO框架,Netty的所有IO操作都是異步非阻塞的,通過Future-Listener機制,用戶可以方便的主動獲取或者通過通知機制獲得IO操作結果。

Netty的優點可以總結如下

1、API使用簡單,開發門檻低;

2、功能強大,預置了多種編解碼功能,支持多種主流協議;

3、定製能力強,可以通過ChannelHandler對通信框架進行靈活地擴展;

4、性能高,通過與其他業界主流的NIO框架對比,Netty的綜合性能最優;

5、成熟、穩定,Netty修復了已經發現的所有JDK NIO BUG,業務開發人員不需要再爲NIO的BUG而煩惱;

6、社區活躍,版本迭代週期短,發現的BUG可以被及時修復,同時,更多的新功能會加入;


2. Netty是面試的必殺器嗎?


Netty 是互聯網中間件領域使用最廣泛最核心的網絡通信框架。幾乎所有互聯網中間件或者大數據領域均離不開 Netty,掌握 Netty 是作爲一名初中級工程師邁向高級工程師最重要的技能之一。

目前來說,主要的互聯網公司,比如阿里、騰訊、美團、新浪、淘寶等,在高級工程師的面試過程中,也經常會問一些高性能通訊框架的方面的問題,還會問一些“你有沒有讀過什麼著名框架的源代碼?”等類似的問題。

如果掌握了Netty 相關的技術問題,更進一步說,如果你能全面地閱讀和掌握 Netty源碼,相信面試大公司時,底氣十足,成功在握。

閒話少說,進入正題。

代碼研究之前,第一步就是要準備環境。


3. 獲取源碼的注意事項


本系列博客中,以就拿github上的4.0分支進行。源碼的獲取有兩種方式,一種是直接下載,一種是git clone。如果通過直接下載zip文件的方式獲取4.0分支的代碼的話,在編譯的時候,有可能報錯。

建議通過git的方式獲取,命令如下:

git clone -b netty-4.0.33.Final --single-branch [email protected]:netty/netty.git

在git命令之前,如果是在windows環境,建議執行一條git換行符配置指令,命令如下:

git config --global  core.autocrlf  true

爲什麼呢?

git上提交代碼的人用的系統不一樣。有的人用windows,有的人用linux,兩個系統對換行符的使用不一樣,windows下是/r/n,但是linux下換行是/n。使用git config指令配置之後,git會自動屏蔽換行符的差異。如果沒有上面的指令,編譯代碼是,可能會有line endings的錯誤。


4. Netty工程


下載源碼後,就可以打開netty工程。

使用IDEA工具,打開後,如下:

wpsAC46.tmp_thumb1

5. 運行 example


netty源碼中,有很多example例子程序,在example目錄下。


wpsAC57.tmp_thumb1

打開 example 目錄, 運行下面的例子了。可以打開,並且運行最簡單的例子 example 下的 EchoServer 例子。

wpsAC58.tmp_thumb1


運行例子之前,如果遇到 Maven 依賴下不全的問題, 可以刷新Maven依賴後,再運行。


瘋狂創客圈


瘋狂創客圈:如果說Java是一個武林,這裏的聚集一羣武癡, 交流編程體驗心得
QQ羣鏈接:
瘋狂創客圈QQ羣


無編程不創客,無案例不學習。 一定記得去跑一跑案例哦


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章