今天,我們用簡單點的語言來描述Netty
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更早,同一作者.這里就不擴展了)
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的理解~具體怎么玩~后面再寫一篇文章供大家參考