3dwoo大學簡體電腦書店
Netty實戰
( 簡體 字)
作者:王金柱類別:1. -> 程式設計 -> 綜合
出版社:清華大學出版社Netty實戰 3dWoo書號: 53535
詢問書籍請說出此書號!
有庫存
NT售價: 295
出版日:11/1/2020
頁數:230
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302563402 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章從JavaIO到Netty 1
1.1了解Java中的IO通信 1
1.1.1IO通信基礎 1
1.1.2“同步/異步”與“阻塞/非阻塞” 2
1.1.3傳統BIO模式 3
1.1.4偽異步IO模式 4
1.1.5NIO模式 5
1.1.6AIO模式 5
1.2初識Netty 5
1.2.1Netty特點 6
1.2.2搭建Netty開發環境 6
1.2.3Netty開發工具—IntelliJIDEA 8
1.3實戰:Netty版的“HelloWorld”程序 9
1.3.1使用IntelliJIDEA創建項目 9
1.3.2引入Netty包 11
1.3.3編寫Netty應用程序 14
1.3.4測試HelloNetty服務器端應用 17
1.4Netty框架模塊介紹 20
1.4.1Netty框架功能模塊的組織結構 20
1.4.2NettyBootstrap入口模塊 21
1.4.3NettyChannel傳輸通道模塊 22
1.4.4NettyEventLoop事件循環模塊 23
1.4.5NettyChannelFuture異步通知接口 23
1.4.6ChannelHandler與ChannelPipeline接口 24
1.5小結 25
第2章構建完整的Netty應用程序 26
2.1搭建完整的Netty架構 26
2.1.1通過IntellijIDEA創建Java應用程序 26
2.1.2導入jar包文件 27
2.1.3組織源碼目錄架構 28
2.2開發Netty丟棄應用(DiscardNetty) 29
2.2.1創建Java源碼文件 29
2.2.2服務器端實現 29
2.2.3客戶端實現 33
2.2.4測試運行DiscardNetty應用 37
2.3開發Netty響應應用(EchoNetty) 38
2.3.1創建Java源碼文件 39
2.3.2服務器端實現 39
2.3.3客戶端實現 43
2.3.4測試運行EchoNetty應用 47
2.4小結 49
第3章Netty線程模型 50
3.1線程基礎 50
3.1.1線程(Thread) 50
3.1.2進程(Process) 51
3.1.3進程與線程的關系 51
3.2Java線程池 51
3.2.1什么是線程池(ThreadPool) 52
3.2.2線程池模型 52
3.2.3Java線程池 53
3.3Reactor模型 54
3.3.1I/O多路復用策略 54
3.3.2Reactor模型和Proactor模型 54
3.3.3Reactor線程模型 55
3.4Netty線程模型 61
3.4.1Netty線程模型與Reactor模型的關系 61
3.4.2Netty單線程模型應用 62
3.4.3Netty多線程模型應用 63
3.4.4主從Netty多線程模型應用 64
3.4.5Netty線程模型流程 66
3.5小結 66
第4章Netty內存管理 67
4.1內存管理基礎 67
4.1.1什么是內存管理 68
4.1.2Netty內存管理方式 68
4.1.3Buffer模塊 68
4.2Netty內存管理核心 69
4.2.1什么是ByteBuf 69
4.2.2ByteBuf及其輔助類 69
4.2.3ByteBuf工作原理 71
4.2.4ByteBuf動態擴展 73
4.2.5ByteBuf使用模式 75
4.2.6ByteBuf字節操作 79
4.3Netty內存管理輔助類 98
4.3.1ByteBufAllocator內存分配 98
4.3.2Unpooled負責非池化緩存 99
4.3.3ByteBufHolder接口設計 99
4.3.4ReferenceCounted引用計數器 101
4.3.5ByteBufUtil接口設計 102
4.4Netty實現“零拷貝” 102
4.5Netty內存泄漏檢測機制 104
4.6小結 107
第5章Netty傳輸功能 108
5.1NettyTransport基礎 108
5.2NettyTransport傳輸方式 109
5.2.1NIO方式 109
5.2.2OIO方式 109
5.2.3Local本地方式 110
5.2.4Embedded嵌入方式 110
5.3NettyTransportAPI 110
5.3.1Channel接口原理 110
5.3.2Channel接口功能 111
5.3.3Channel接口應用實例 111
5.4NettyTransport協議 113
5.4.1NIO傳輸協議 113
5.4.2OIO傳輸協議 115
5.4.3本地傳輸協議 116
5.4.4內嵌傳輸協議 116
5.5小結 116
第6章NettyChannel 117
6.1Channel基礎 117
6.1.1什么是Channel 117
6.1.2Stream與Channel對比 118
6.1.3JavaNIOChannel介紹 118
6.2NettyChannel接口 119
6.2.1Channel接口架構 119
6.2.2Channel接口實現 120
6.2.3Channel接口生命周期 123
6.3NettyChannelHandler接口 124
6.3.1ChannelHandler接口架構 124
6.3.2ChannelHandler接口生命周期 124
6.3.3ChannelHandlerAdapter子接口 125
6.3.4ChannelHandler子接口 127
6.3.5ChannelHandler資源管理與泄漏等級 137
6.4NettyChannelPipeline接口 138
6.4.1ChannelPipeline接口架構 138
6.4.2ChannelPipeline與ChannelHandler關系 139
6.4.3ChannelPipeline實現 139
6.4.4ChannelPipeline修改 145
6.4.5ChannelHandler執行ChannelPipeline與阻塞 146
6.4.6ChannelPipeline事件傳遞 147
6.5NettyChannelHandlerContext接口 147
6.5.1ChannelHandlerContext接口基礎 147
6.5.2ChannelHandlerContext接口使用 148
6.6小結 151
第7章Netty編碼與解碼 152
7.1Codec基礎 152
7.1.1編碼與解碼 152
7.1.2Codec的作用 153
7.1.3NettyCodec基礎 153
7.2NettyEncode編碼器 153
7.3NettyDecode解碼器 156
7.4NettyCodec抽象類 162
7.4.1NettyCodec概述 162
7.4.2ByteToMessageCodec類 162
7.4.3MessageToMessageCodec類 163
7.4.4CombinedChannelDuplexHandler類 164
7.5小結 166
第8章Netty引導 167
8.1Bootstrap基礎 167
8.2Bootstrap類型 168
8.3Bootstrap客戶端 172
8.3.1Bootstrap客戶端引導原理 173
8.3.2Bootstrap客戶端類介紹 178
8.3.3Bootstrap構建NIO客戶端 179
8.4Bootstrap服務器端 180
8.4.1ServerBootstrap服務器端引導原理 180
8.4.2ServerBootstrap服務器端類介紹 182
8.4.3ServerBootstrap構建NIO服務器端 183
8.5從Channel引導客戶端 184
8.6服務器端配置兩個EventLoopGroup 187
8.7小結 189
第9章項目實戰:基于WebSocket搭建Netty服務器 190
9.1WebSocket協議 190
9.1.1WebSocket介紹 191
9.1.2WebSocket與Socket 191
9.1.3WebSocket與HTTP和TCP 191
9.2構建Netty響應服務器應用程序框架 192
9.2.1Maven構建工具配置 192
9.2.2IntelliJIDEA通過Maven構建應用程序 193
9.2.3Maven工程架構目錄 195
9.3基于WebSocket的Netty響應服務器端開發 196
9.3.1服務器端Server主入口類 196
9.3.2服務器端Server子處理器類 198
9.3.3服務器端Handler輔助類 200
9.4基于WebSocket的Netty響應客戶端開發 202
9.5測試運行Netty應用程序 204
9.6小結 207
第10章項目實戰:基于Netty構建消息推送系統 208
10.1WebSocket特點 208
10.2Netty消息推送系統應用程序架構 209
10.3Netty消息推送系統服務器端開發 210
10.3.1服務器端Server主入口類 210
10.3.2服務器端Server子處理器類 213
10.3.3服務器端Handler輔助類 214
10.3.4服務器端Channel輔助類 219
10.4Netty消息推送系統客戶端開發 220
10.4.1基于Netty構建客戶端的實現 220
10.4.2基于WebSocket的HTML5客戶端網頁 226
10.5測試運行Netty應用程序 228
10.6小結 231
Netty是一個開源的、基于NIO的客戶端和服務器端Java編程框架。本書涵蓋Netty開發中絕大多數需要掌握的基本原理、方法與技巧,是一本比較實用的Netty參考書,可以作為Java Web應用開發人員的技術指導手冊。
全書分為10章,包括Netty基礎(從Java IO演進)、構建完整的Netty應用、Netty線程模型、Netty內存管理、Transport(傳輸)、Channel(通道)、Codec(編解碼器)和Bootstrap(引導)等核心內容的8章,還包括基于WebSocket構建Netty響應服務器和Netty消息推送系統這兩個項目實戰的2章。本書對應用Netty框架開發網絡應用有很好的指導作用。
本書內容簡潔明了、通俗易懂、原理清晰、重點突出、實例豐富、代碼精練,適合想要學習Netty的Java Web應用開發人員,同時也非常適合作為高等院校和培訓學校計算機及相關專業的輔助教材。
Netty作為一種Java開源網絡編程框架,近些年已經得到了業內開發人員的一致認可。究其原因,主要是因為Netty在開發高并發、高性能、高可靠性的網絡服務器和客戶端程序方面的明顯優勢。于是,學習掌握Netty框架開發技術變成了眾多開發人員的熱切期望。本書是一本原理介紹與編程實踐相結合的教材,不僅為讀者全面深入地講解針對Netty框架各個方面的技術,還針對目前的技術熱點介紹了基于Netty框架的兩個項目實戰。可以講,本書是一本學習Netty框架開發技術的得力助手。
Netty框架核心知識點
Netty框架體系比較復雜,與Java IO有著密不可分的關系,涉及的知識點非常多,對于大多數剛剛接觸Netty框架的讀者可能會一時無從下手。那么關于Netty框架的核心知識點都有哪些內容呢?
? 從Java IO演進到Netty
? Netty線程模型
? Netty內存管理
? Transport(傳輸)
? Channel(通道)
? Codec(編解碼器)
? Bootstrap(引導)
? WebSocket協議和Netty框架
以上所有核心知識點在本書中都有講解。本書從Netty框架的使用原理與應用場景出發,借助對源碼的剖析進行全方位的講解和演示,力求幫助讀者理解并掌握關于Netty框架原理和開發方面的具體方法和技巧。
本書的內容安排
本書共10章,循序漸進地講解了Netty框架開發所需的各項知識點。
第1章主要介紹從Java IO到Netty的技術演進。Netty是基于Java IO開發的、異步的、基于事件驅動的網絡應用框架,提供了異步的、事件驅動的網絡應用程序框架和工具。Netty主要用以快速開發高性能、高可靠性的網絡服務器和客戶端程序。
第2章主要介紹如何逐步構建一個完整的Netty應用程序。一個完整的Netty應用程序包含服務器端和客戶端,客戶端將信息發送給服務器端進行處理,同時服務器端再將信息經過處理后返回給客戶端。
第3章主要介紹關于Netty線程模型的內容。Netty線程是基于Reactor模型的多路復用方式來實現的,其內部實現了兩個線程池:boss線程池和worker線程池,這兩個線程池是Netty框架的重點內容。
第4章主要介紹關于Netty內存管理的內容。內存管理是Netty框架的核心部分,也是較難掌握的內容之一。Netty內存管理采用堆外內存分配的方式,從而避免了頻繁的垃圾回收(GC)操作,這也正是Netty內存管理設計的特殊之處。
第5章主要介紹關于Netty Transport(傳輸)的內容。Netty框架對傳輸功能進行了優化改進,相比使用Java NIO更簡單。開發人員無須重構整個代碼庫,這樣就可以把更多的精力放在業務邏輯中,極大地提高了開發效率。
第6章主要介紹關于Netty Channel(通道)的內容。Channel是Netty框架的核心部分,是具體負責數據包裝進行傳輸和處理的關鍵部分。
第7章主要介紹關于Netty Codec(編解碼器)的內容。Codec是Netty框架中負責編碼和解碼的模塊,是將數據從一種特定協議格式轉換成另一種特定協議格式的關鍵部分,是TCP通信協議的一種解決方案。
第8章主要介紹關于Netty Bootstrap(引導)的內容。Bootstrap是整個Netty框架中負責啟動運行的模塊,是Netty應用程序能夠良好運行的基礎。
第9章是項目實戰,主要介紹如何基于WebSocket協議逐步搭建一個Netty響應服務器應用程序。這個Netty響應服務器應用程序的客戶端是一個基于WebSocket協議的HTML5網頁,它將信息發送給服務器端,服務器端進行響應處理后再返回給它(客戶端)。
第10章也是項目實戰,主要介紹如何基于WebSocket協議的特性構建一個Netty消息推送系統應用程序。Netty消息推送系統應用程序將創建兩類客戶端,一類是用于測試的HTML5網頁;另一類是基于Netty構建的、用于通過服務器推送消息的客戶端。
本書面對的讀者
? Java Web應用程序開發人員
? Netty框架學習初學者
? 由Java IO向Netty框架轉型的開發人員
? 中小型企業網站開發者
? 高等院校和培訓學校的學生
源碼下載
本書配套的示例源碼可以掃描下面二維碼獲取。

如果下載有問題,郵件主題為“Netty實戰”。
本書作者
全書由王金柱完成寫作,吳貴文編輯整理。

編者
2020年5月
pagetop