国产TS紫迹丝袜高跟鞋在线,一区二区三区国产自产视频免费,67pao国产人成视频,午国产午夜激无码毛片不卡

愛碼網(wǎng)專注于資源免費(fèi)下載

Netty 4核心原理與手寫RPC框架實(shí)戰(zhàn) PDF 下載

Netty 4核心原理與手寫RPC框架實(shí)戰(zhàn) PDF 下載-第1張圖片 此部分為隱藏內(nèi)容,請輸入驗(yàn)證碼后查看
驗(yàn)證碼:


掃描右側(cè)圖片或微信搜索 “ Java技術(shù)分享屋 ” ,回復(fù) “ 驗(yàn)證碼 ” ,獲取驗(yàn)證密碼。
本資料僅供讀者預(yù)覽及學(xué)習(xí)交流使用,不能用于商業(yè)用途,請?jiān)谙螺d后24小時(shí)內(nèi)刪除。如果喜歡,請購買正版!

一.資料圖片

Netty 4核心原理與手寫RPC框架實(shí)戰(zhàn) PDF 下載-第2張圖片

二.資料簡介

《Netty 4核心原理與手寫RPC框架實(shí)戰(zhàn)》首先從硬件層面深入分析網(wǎng)絡(luò)通信原理,結(jié)合Java對網(wǎng)絡(luò)I/O的API實(shí)現(xiàn),將理論與實(shí)踐串聯(lián)起來,幫助大家透徹理解網(wǎng)絡(luò)通信的起源,然后介紹Netty產(chǎn)生的背景并基于Netty手寫Tomcat和RPC框架,幫助大家初步了解Netty的作用,接著分析Netty的核心原理和核心組件,基于Netty手寫一個(gè)消息推送系統(tǒng)并進(jìn)行性能調(diào)優(yōu),最后介紹設(shè)計(jì)模式在Netty中的應(yīng)用和經(jīng)典的面試題分析。

如果你想深入了解網(wǎng)絡(luò)通信原理,

如果你還不知道Netty能做什么,

如果你想深入了解Netty的實(shí)現(xiàn)原理,

如果你看源碼找不到入口,無從下手,

如果你想了解設(shè)計(jì)模式在Netty中的應(yīng)用,

本書都能幫到你。

三.資料目錄

第1篇 I/O 基礎(chǔ)篇
第1章 網(wǎng)絡(luò)通信原理 2
1.1 網(wǎng)絡(luò)基礎(chǔ)架構(gòu) 2
1.1.1 C/S 架構(gòu) 2
1.1.2 C/S 信息傳輸流程 2
1.2 TCP/IP 五層模型詳解 3
1.2.1 物理層 3
1.2.2 數(shù)據(jù)鏈路層 4
1.2.3 網(wǎng)絡(luò)層 5
1.2.4 傳輸層 10
1.2.5 應(yīng)用層 15
1.2.6 小結(jié) 16
1.3 網(wǎng)絡(luò)通信實(shí)現(xiàn)原理 18
1.4 向?yàn)g覽器輸入 URL 后發(fā)生了什么 19
1.5 網(wǎng)絡(luò)通信之“魂”——Socket 21
第2章 Java I/O 演進(jìn)之路 23
2.1 I/O 的問世 23
2.1.1 什么是 I/O 23
2.1.2 I/O 交互流程 24
2.2 五種 I/O 通信模型 25
2.2.1 阻塞 I/O 模型 25
2.2.2 非阻塞 I/O 模型 26
2.2.3 多路復(fù)用 I/O 模型 27
2.2.4 信號(hào)驅(qū)動(dòng) I/O 模型 28
2.2.5 異步 I/O 模型 28
2.2.6 易混淆的概念澄清 29
2.2.7 各 I/O 模型的對比與總結(jié) 32
2.3 從 BIO 到 NIO 的演進(jìn) 33
2.3.1 面向流與面向緩沖 33
2.3.2 阻塞與非阻塞 33
2.3.3 選擇器在 I/O 中的應(yīng)用 34
2.3.4 NIO 和 BIO 如何影響應(yīng)用程序的設(shè)計(jì) 34
2.4 Java AIO 詳解 37
2.4.1 AIO 基本原理 37
2.4.2 AIO 初體驗(yàn) 38
第2篇 Netty 初體驗(yàn)
第3章 Netty 與 NIO 之前世今生 44
3.1 Java NIO 三件套 44
3.1.1 緩沖區(qū) 44
3.1.2 選擇器 54
3.1.3 通道 58
3.2 NIO 源碼初探 63
3.3 反應(yīng)堆 69
3.4 Netty 與 NIO 70
3.4.1 Netty 支持的功能與特性 70
3.4.2 Netty 采用 NIO 而非 AIO 的理由 71
第4章 基于 Netty 手寫 Tomcat 72
4.1 環(huán)境準(zhǔn)備 72
4.1.1 定義 GPServlet 抽象類 72
4.1.2 創(chuàng)建用戶業(yè)務(wù)代碼 73
4.1.3 完成 web.properties 配置 74
4.2 基于傳統(tǒng) I/O 手寫 Tomcat 74
4.2.1 創(chuàng)建 GPRequest 對象 74
4.2.2 創(chuàng)建 GPResponse 對象 76
4.2.3 創(chuàng)建 GPTomcat 啟動(dòng)類 77
4.3 基于 Netty 重構(gòu) Tomcat 實(shí)現(xiàn) 80
4.3.1 重構(gòu) GPTomcat 邏輯 80
4.3.2 重構(gòu) GPRequest 邏輯 83
4.3.3 重構(gòu) GPResponse 邏輯 84
4.3.4 運(yùn)行效果演示 85
第5章 基于 Netty 重構(gòu) RPC 框架 87
5.1 RPC 概述 87
5.2 環(huán)境預(yù)設(shè) 88
5.3 代碼實(shí)戰(zhàn) 91
5.3.1 創(chuàng)建 API 模塊 91
5.3.2 創(chuàng)建自定義協(xié)議 91
5.3.3 實(shí)現(xiàn) Provider 業(yè)務(wù)邏輯 92
5.3.4 完成 Registry 服務(wù)注冊 93
5.3.5 實(shí)現(xiàn) Consumer 遠(yuǎn)程調(diào)用 97
5.3.6 Monitor 監(jiān)控 101
5.4 運(yùn)行效果演示 102
第3篇 Netty 核心篇
第6章 Netty 高性能之道 104
6.1 背景介紹 104
6.1.1 Netty 驚人的性能數(shù)據(jù) 104
6.1.2 傳統(tǒng) RPC 調(diào)用性能差的“三宗罪” 104
6.1.3 Netty 高性能的三個(gè)主題 105
6.2 Netty 高性能之核心法寶 106
6.2.1 異步非阻塞通信 106
6.2.2 零拷貝 108
6.2.3 內(nèi)存池 112
6.2.4 高效的 Reactor 線程模型 116
6.2.5 無鎖化的串行設(shè)計(jì)理念 118
6.2.6 高效的并發(fā)編程 119
6.2.7 對高性能的序列化框架的支持 119
6.2.8 靈活的 TCP 參數(shù)配置能力 120
第7章 揭開 Bootstrap 的神秘面紗 124
7.1 客戶端 Bootstrap 124
7.1.1 Channel 簡介 124
7.1.2 NioSocketChannel 的創(chuàng)建 125
7.1.3 客戶端 Channel 的初始化 127
7.1.4 Unsafe 屬性的初始化 130
7.1.5 ChannelPipeline 的初始化 131
7.1.6 EventLoop 的初始化 132
7.1.7 將 Channel 注冊到 Selector 137
7.1.8 Handler 的添加過程 139
7.1.9 客戶端發(fā)起連接請求 141
7.2 服務(wù)端 ServerBootstrap 144
7.2.1 NioServerSocketChannel 的創(chuàng)建 146
7.2.2 服務(wù)端 Channel 的初始化 146
7.2.3 服務(wù)端 ChannelPipeline 的初始化 149
7.2.4 將服務(wù)端 Channel 注冊到 Selector 149
7.2.5 bossGroup 與 workerGroup 149
7.2.6 服務(wù)端 Selector 事件輪詢 152
7.2.7 Netty 解決 JDK 空輪詢 Bug 154
7.2.8 Netty 對 Selector 中 KeySet 的優(yōu)化 157
7.2.9 Handler 的添加過程 160
第8章 大名鼎鼎的 EventLoop 164
8.1 EventLoopGroup 與 Reactor 164
8.1.1 再談 Reactor 線程模型 164
8.1.2 EventLoopGroup 與 Reactor 關(guān)聯(lián) 166
8.1.3 EventLoopGroup 的實(shí)例化 167
8.2 任務(wù)執(zhí)行者 EventLoop 169
8.2.1 NioEventLoop 的實(shí)例化過程 170
8.2.2 EventLoop 與 Channel 的關(guān)聯(lián) 171
8.2.3 EventLoop 的啟動(dòng) 172
第9章 Netty 大動(dòng)脈 Pipeline 176
9.1 Pipeline 設(shè)計(jì)原理 176
9.1.1 Channel 與 ChannelPipeline 176
9.1.2 再談 ChannelPipeline 的初始化 177
9.1.3 ChannelInitializer 的添加 178
9.1.4 自定義 ChannelHandler 的添加過程 181
9.1.5 給 ChannelHandler 命名 184
9.1.6 ChannelHandler 的默認(rèn)命名規(guī)則 185
9.2 Pipeline 的事件傳播機(jī)制 186
9.2.1 Outbound 事件傳播方式 194
9.2.2 Inbound 事件傳播方式 196
9.2.3 小結(jié) 199
9.3 Handler 的各種“姿勢” 200
9.3.1 ChannelHandlerContext 200
9.3.2 Channel 的生命周期 201
9.3.3 ChannelHandler 常用的 API 201
9.3.4 ChannelInboundHandler 202
第10章 異步處理雙子星 Future 與 Promise 204
10.1 異步結(jié)果 Future 204
10.2 異步執(zhí)行 Promise 205
第11章 Netty 內(nèi)存分配 ByteBuf 209
11.1 初識(shí) ByteBuf 209
11.1.1 ByteBuf 的基本結(jié)構(gòu) 209
11.1.2 ByteBuf 的重要 API 210
11.1.3 ByteBuf 的基本分類 213
11.2 ByteBufAllocator 內(nèi)存管理器 214
11.3 非池化內(nèi)存分配 218
11.3.1 堆內(nèi)內(nèi)存的分配 218
11.3.2 堆外內(nèi)存的分配 221
11.4 池化內(nèi)存分配 224
11.4.1 PooledByteBufAllocator 簡述 224
11.4.2 DirectArena 內(nèi)存分配流程 229
11.4.3 內(nèi)存池的內(nèi)存規(guī)格 231
11.4.4 命中緩存的分配 231
11.4.5 Page 級別的內(nèi)存分配 241
11.4.6 SubPage 級別的內(nèi)存分配 254
11.4.7 內(nèi)存池 ByteBuf 的內(nèi)存回收 268
11.4.8 SocketChannel 讀取 ByteBuf 的過程 273
第12章 Netty 編解碼的藝術(shù) 281
12.1 什么是拆包、粘包 281
12.1.1 TCP 拆包、粘包 281
12.1.2 粘包問題的解決策略 282
12.2 什么是編解碼 282
12.2.1 編解碼技術(shù) 282
12.2.2 Netty 為什么要提供編解碼框架 283
12.3 Netty 中常用的解碼器 284
12.3.1 ByteToMessageDecoder 抽象解碼器 284
12.3.2 LineBasedFrameDecoder 行解碼器 289
12.3.3 DelimiterBasedFrameDecoder 分隔符解碼器 296
12.3.4 FixedLengthFrameDecoder 固定長度解碼器 302
12.3.5 LengthFieldBasedFrameDecoder 通用解碼器 303
12.4 Netty 編碼器原理和數(shù)據(jù)輸出 307
12.4.1 WriteAndFlush 事件傳播 307
12.4.2 MessageToByteEncoder 抽象編碼器 311
12.4.3 寫入 Buffer 隊(duì)列 312
12.4.4 刷新 Buffer 隊(duì)列 316
12.4.5 數(shù)據(jù)輸出回調(diào) 322
12.5 自定義編解碼 335
12.5.1 MessageToMessageDecoder 抽象解碼器 335
12.5.2 MessageToMessageEncoder 抽象編碼器 336
12.5.3 ObjectEncoder 序列化編碼器 337
12.5.4 LengthFieldPrepender 通用編碼器 338
第4篇 Netty 實(shí)戰(zhàn)篇
第13章 基于 Netty 手寫消息推送系統(tǒng) 342
13.1 環(huán)境搭建 342
13.2 多協(xié)議通信設(shè)計(jì) 343
13.2.1 自定義協(xié)議規(guī)則 343
13.2.2 自定義編解碼器 346
13.2.3 對 HTTP 的支持 349
13.2.4 對自定義協(xié)議的支持 351
13.2.5 對 WebSocket 協(xié)議的支持 351
13.3 服務(wù)端邏輯處理 352
13.3.1 多協(xié)議串行處理 352
13.3.2 服務(wù)端用戶中心 354
13.4 客戶端控制臺(tái)處理 359
13.4.1 控制臺(tái)接入代碼 359
13.4.2 控制臺(tái)消息處理 360
13.5 客戶端 Web 頁面交互實(shí)現(xiàn) 363
13.5.1 Web 頁面設(shè)計(jì) 363
13.5.2 WebSocket 接入 365
13.5.3 登錄和退出 366
13.5.4 發(fā)送文字信息 367
13.5.5 發(fā)送圖片表情 368
13.5.6 發(fā)送鮮花雨特效 369
第14章 Netty 高性能調(diào)優(yōu)工具類解析 371
14.1 多線程共享 FastThreadLocal 371
14.1.1 FastThreadLocal 的使用和創(chuàng)建 371
14.1.2 FastThreadLocal 的設(shè)值 379
14.2 Recycler 對象回收站 381
14.2.1 Recycler 的使用和創(chuàng)建 381
14.2.2 從 Recycler 中獲取對象 386
14.2.3 相同線程內(nèi)的對象回收 389
14.2.4 不同線程間的對象回收 391
14.2.5 獲取不同線程間釋放的對象 397
第15章 單機(jī)百萬連接性能調(diào)優(yōu) 405
15.1 模擬 Netty 單機(jī)連接瓶頸 405
15.2 單機(jī)百萬連接調(diào)優(yōu)解決思路 410
15.2.1 突破局部文件句柄限制 410
15.2.2 突破全局文件句柄限制 412
15.3 Netty 應(yīng)用級別的性能調(diào)優(yōu) 413
15.3.1 Netty 應(yīng)用級別的性能瓶頸復(fù)現(xiàn) 413
15.3.2 Netty 應(yīng)用級別的性能調(diào)優(yōu)方案 420
第16章 設(shè)計(jì)模式在 Netty 中的應(yīng)用 422
16.1 單例模式源碼舉例 422
16.2 策略模式源碼舉例 423
16.3 裝飾者模式源碼舉例 424
16.4 觀察者模式源碼舉例 426
16.5 迭代器模式源碼舉例 427
16.6 責(zé)任鏈模式源碼舉例 428
16.7 工廠模式源碼舉例 430
第17章 Netty 經(jīng)典面試題集錦 432
17.1 基礎(chǔ)知識(shí)部分 432
17.1.1 TCP 和 UDP 的根本區(qū)別 432
17.1.2 TCP 如何保證可靠傳輸 433
17.1.3 Netty 能解決什么問題 433
17.1.4 選用 Netty 作為通信組件框架的舉例 433
17.1.5 Netty 有哪些主要組件,它們之間有什么關(guān)聯(lián) 433
17.2 高級特性部分 434
17.2.1 相較同類框架,Netty 有哪些優(yōu)勢 434
17.2.2 Netty 的高性能體現(xiàn)在哪些方面 434
17.2.3 默認(rèn)情況下 Netty 起多少線程,何時(shí)啟動(dòng) 434
17.2.4 Netty 有幾種發(fā)送消息的方式 434
17.2.5 Netty 支持哪些心跳類型設(shè)置 435
17.2.6 Netty 和 Tomcat 的區(qū)別 435
17.2.7 在實(shí)際應(yīng)用中,如何確定要使用哪些編解碼器 435

本文鏈接:http://fangxuan.com.cn/java/402.html

網(wǎng)友評論

熱門文章
隨機(jī)文章
熱門標(biāo)簽
側(cè)欄廣告位