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

【正文】netty源碼  死磕2: 環境搭建linux

本小節目錄


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



1. Netty爲何火得屌炸天?

1.1. Netty是什麼?


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

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是異步的。windows

做爲一個異步NIO框架,Netty的全部IO操做都是異步非阻塞的,經過Future-Listener機制,用戶能夠方便的主動獲取或者經過通知機制得到IO操做結果。服務器

Netty的優勢能夠總結以下網絡

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

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

三、定製能力強,能夠經過ChannelHandler對通訊框架進行靈活地擴展;

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

五、成熟、穩定,Netty修復了已經發現的全部JDK NIO BUG,業務開發人員不須要再爲NIO的BUG而煩惱;

六、社區活躍,版本迭代週期短,發現的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 git@github.com: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羣


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

相關文章
相關標籤/搜索