這麼說吧,Netty很簡單,其實就是個Jar包,是做爲通信組件用的

我是風月連城,喜歡用簡單的語言闡述知識點java

長期分享原創java文章,分享進階架構師學習筆記及學習資料
編程

喜歡的能夠點贊關注,共同窗習,一塊兒進步api



Netty是什麼?服務器

0 ) 關鍵詞:Netty、NIO、異步、通信、網絡

1)本質:一個Jar包,一個NIO框架,是對 socket 網絡編程的優秀包裝架構

2)做用:既然netty 是對 socket 網絡編程的優秀包裝.那麼在沒有Netty以前,jdk強迫你必須用socket來寫服務器,其實是很繁瑣的,缺少一個高層次的api。而後Netty誕生了,他說,我來寫jdk的socket,而後返回給你一個新的更簡潔的api,你傻瓜式的就能寫好一個網絡服務器框架

3)好處:提供異步的、事件驅動的網絡應用程序框架和工具,你傻瓜式的就能寫好一個網絡服務器(固然是相對於更底層的socket 網絡編程來講),通俗的說:一個好使的處理Socket的框架異步

4 ) 相似 : 相似做用的有Mina(比netty更早,同一做者.這裏就不擴展了)socket

5 ) 支持的協議有HTTP,WebSockets,SSL等。用Netty,你能夠容易地利用Java NIO來提升服務端的性能。分佈式

6 ) 場景:阿里分佈式服務框架 Dubbo 的 RPC 框架使用 Dubbo 協議進行節點間通訊,Dubbo 協議默認使用 Netty 做爲基礎通訊組件,用於實現各進程節點之間的內部通訊。(什麼是dubbo?),還有阿里的消息隊列(RocketMQ),阿里的HSF等

7 ) 學習Netty須要的知識儲備: Netty自己知識提供一種方便網絡編程(特別是NIO)的框架(jar包),若是你熟悉TCP/IP,網絡編程和NIO,那麼Netty對你來講並不難,大概一週時間就可使用.若是不熟悉以上這些,建議先熟悉以上技術,學習Netty時,核心要掌握它的線程模型

8 )再理解 :相對於Tomcat這種Web Server(顧名思義主要是提供Web協議相關的服務的),Netty是一個Network Server,是處於Web Server更下層的網絡框架,也就是說你可使用Netty模仿Tomcat作一個提供HTTP服務的Web容器。

9 ) 通訊 :系統須要實現多進程通訊,只有兩種方式:內存共享、消息傳遞;分佈式的系統間通訊只有消息傳遞,Netty可做爲應用間消息傳遞實現的基礎組件,Netty位於OSI協議棧的會話層、表示層、應用層都有涉及,這樣你能夠方便的擴展實現,處理會話層以上的協議和業務;Netty封裝了java nio的api,使之成爲一個很是方便使用框架;提供了提供處理IO的線程池,最重要的一點保證了一個socket處理在一個線程中完成,一個線程能夠同時處理多個socket,這個比較好玩;

10 ) 以上都是對Netty的理解~具體怎麼玩~後面再寫一篇文章供你們參考

相關文章
相關標籤/搜索