没有合适的资源?快使用搜索试试~ 我知道了~
尚硅谷Netty核心技术及源码剖析1
需积分: 0 3 下载量 13 浏览量
2022-08-03
17:26:05
上传
评论
收藏 4.64MB PDF 举报
温馨提示
试读
272页
第 1 章 NETTY 介绍和应用场景 11.1 本课程学习要求11.3 NETTY 的应用场景 21.3.1 互联网行业21.3.2 游戏行业21.3.3 大
资源详情
资源评论
资源推荐
尚硅谷 Netty 核心技术及源码剖析
更多 Java –大数据 –前端 –python 人工智能- 区块链 资料下载,可访问百度:尚硅谷官网
第
II
页
第 1 章 NETTY 介绍和应用场景....................................................................................................................................................................... 1
1.1 本课程学习要求........................................................................................................................................................................................... 1
1.2 NETTY 的介绍.................................................................................................................................................................................................1
1.3 NETTY 的应用场景........................................................................................................................................................................................ 2
1.3.1 互联网行业............................................................................................................................................................................2
1.3.2 游戏行业................................................................................................................................................................................2
1.3.3 大数据领域............................................................................................................................................................................3
1.3.4 其它开源项目使用到 Netty..................................................................................................................................................4
1.4 NETTY 的学习参考资料................................................................................................................................................................................ 4
第 2 章 JAVA BIO 编程.......................................................................................................................................................................................6
2.1 I/O 模型..........................................................................................................................................................................................................6
2.1.1 I/O 模型基本说明................................................................................................................................................................. 6
2.2 BIO、NIO、AIO 适用场景分析..................................................................................................................................................................7
2.3 JAVA BIO 基本介绍.......................................................................................................................................................................................8
2.4 JAVA BIO 工作机制.......................................................................................................................................................................................8
2.5 JAVA BIO 应用实例.......................................................................................................................................................................................9
2.6 JAVA BIO 问题分析.....................................................................................................................................................................................12
第 3 章 JAVA NIO 编程.....................................................................................................................................................................................14
3.1 JAVA NIO 基本介绍.................................................................................................................................................................................... 14
3.2 NIO 和 BIO 的比较..................................................................................................................................................................................16
3.3 NIO 三大核心原理示意图.........................................................................................................................................................................16
3.3.1 Selector 、 Channel 和 Buffer 的关系图(简单版).........................................................................................................16
3.4 缓冲区(BUFFER)..........................................................................................................................................................................................17
3.4.1 基本介绍..............................................................................................................................................................................17
3.4.2 Buffer 类及其子类.............................................................................................................................................................. 18
3.4.3 ByteBuffer.............................................................................................................................................................................19
3.5 通道(CHANNEL)...........................................................................................................................................................................................20
3.6 基本介绍..................................................................................................................................................................................................... 20
3.6.1 FileChannel 类..................................................................................................................................................................... 21
3.6.2 应用实例 1-本地文件写数据............................................................................................................................................. 21
3.6.3 应用实例 2-本地文件读数据............................................................................................................................................. 23
3.6.4 应用实例 3-使用一个 Buffer 完成文件读取、写入.........................................................................................................25
3.6.5 应用实例 4-拷贝文件 transferFrom 方法......................................................................................................................... 27
3.6.6 关于 Buffer 和 Channel 的注意事项和细节....................................................................................................................28
3.7 SELECTOR(选择器)....................................................................................................................................................................................... 35
3.7.1 基本介绍..............................................................................................................................................................................36
3.7.2 Selector 示意图和特点说明.................................................................................................................................................36
尚硅谷 Netty 核心技术及源码剖析
更多 Java –大数据 –前端 –python 人工智能- 区块链 资料下载,可访问百度:尚硅谷官网
第
III
页
3.7.3 Selector 类相关方法.............................................................................................................................................................37
3.7.4 注意事项..............................................................................................................................................................................37
3.8 NIO 非阻塞 网络编程原理分析图...........................................................................................................................................................38
3.9 NIO 非阻塞 网络编程快速入门...............................................................................................................................................................39
3.10 SELECTIONKEY........................................................................................................................................................................................... 44
3.11 SERVERSOCKETCHANNEL........................................................................................................................................................................... 45
3.12 SOCKETCHANNEL....................................................................................................................................................................................... 45
3.13 NIO 网络编程应用实例-群聊系统......................................................................................................................................................... 46
3.14 NIO 与零拷贝............................................................................................................................................................................................58
3.14.1 零拷贝基本介绍................................................................................................................................................................58
3.14.2 传统 IO 数据读写..............................................................................................................................................................58
3.14.3 传统 IO 模型.....................................................................................................................................................................59
3.14.4 mmap 优化.........................................................................................................................................................................59
3.14.5 sendFile 优化..................................................................................................................................................................... 60
3.14.6 零拷贝的再次理解............................................................................................................................................................62
3.14.7 mmap 和 sendFile 的区别...............................................................................................................................................62
3.14.8 NIO 零拷贝案例................................................................................................................................................................63
3.15 JAVA AIO 基本介绍...................................................................................................................................................................................66
3.16 BIO、NIO、AIO 对比表..........................................................................................................................................................................67
第 4 章 NETTY 概述.........................................................................................................................................................................................68
4.1 原生 NIO 存在的问题................................................................................................................................................................................68
4.2 NETTY 官网说明.......................................................................................................................................................................................... 68
4.3 NETTY 的优点.............................................................................................................................................................................................. 69
4.4 NETTY 版本说明.......................................................................................................................................................................................... 69
第 5 章 NETTY 高性能架构设计.................................................................................................................................................................... 71
5.1 线程模型基本介绍.....................................................................................................................................................................................71
5.2 传统阻塞 I/O 服务模型............................................................................................................................................................................71
5.2.1 工作原理图..........................................................................................................................................................................71
5.2.2 模型特点..............................................................................................................................................................................71
5.2.3 问题分析..............................................................................................................................................................................72
5.3 REACTOR 模式.............................................................................................................................................................................................72
5.3.1 针对传统阻塞 I/O 服务模型的 2 个缺点,解决方案: ...........................................................................................72
5.3.2 I/O 复用结合线程池,就是 Reactor 模式基本设计思想,如图.................................................................................. 73
5.3.3 Reactor 模式中 核心组成:.............................................................................................................................................. 74
5.3.4 Reactor 模式分类:............................................................................................................................................................ 74
5.4 单 REACTOR 单线程..................................................................................................................................................................................74
5.4.1 方案说明:..........................................................................................................................................................................75
尚硅谷 Netty 核心技术及源码剖析
更多 Java –大数据 –前端 –python 人工智能- 区块链 资料下载,可访问百度:尚硅谷官网
第
IV
页
5.4.2 方案优缺点分析:..............................................................................................................................................................76
5.5 单 REACTOR 多线程....................................................................................................................................................................................76
5.5.1 原理图..................................................................................................................................................................................76
5.5.2 对上图的小结......................................................................................................................................................................77
5.5.3 方案优缺点分析:..............................................................................................................................................................78
5.6 主从 REACTOR 多线程..............................................................................................................................................................................78
5.6.1 工作原理图..........................................................................................................................................................................78
5.6.2 上图的方案说明..................................................................................................................................................................79
5.6.3 Scalable IO in Java 对 Multiple Reactors 的原理图解:................................................................................................ 80
5.6.4 方案优缺点说明:..............................................................................................................................................................80
5.7 REACTOR 模式小结.....................................................................................................................................................................................80
5.7.1 3 种模式用生活案例来理解 .............................................................................................................................................80
5.7.2 Reactor 模式具有如下的优点: ...................................................................................................................................... 81
5.8 NETTY 模型...................................................................................................................................................................................................81
5.8.1 工作原理示意图 1-简单版................................................................................................................................................. 81
5.8.2 对上图说明..........................................................................................................................................................................82
5.8.3 工作原理示意图 2-进阶版................................................................................................................................................. 82
5.8.4 工作原理示意图-详细版.................................................................................................................................................... 82
5.8.5 对上图的说明小结..............................................................................................................................................................83
5.8.6 Netty 快速入门实例-TCP 服务...........................................................................................................................................84
5.8.7 任务队列中的 Task 有 3 种典型使用场景....................................................................................................................92
5.8.8 方案再说明..........................................................................................................................................................................97
5.9 异步模型..................................................................................................................................................................................................... 98
5.9.1 基本介绍..............................................................................................................................................................................98
5.9.2 Future 说明.......................................................................................................................................................................... 98
5.9.3 工作原理示意图..................................................................................................................................................................98
5.9.4 Future-Listener 机制............................................................................................................................................................99
5.10 快速入门实例-HTTP 服务.....................................................................................................................................................................101
第 6 章 NETTY 核心模块组件...................................................................................................................................................................... 107
6.1 BOOTSTRAP、SERVERBOOTSTRAP..............................................................................................................................................................107
6.2 FUTURE、CHANNELFUTURE.......................................................................................................................................................................107
6.3 CHANNEL.................................................................................................................................................................................................... 108
6.4 SELECTOR....................................................................................................................................................................................................108
6.5 CHANNELHANDLER 及其实现类.............................................................................................................................................................. 109
6.6 PIPELINE 和 CHANNELPIPELINE............................................................................................................................................................... 110
6.7 CHANNELHANDLERCONTEXT..................................................................................................................................................................... 111
6.8 CHANNELOPTION........................................................................................................................................................................................ 112
6.9 EVENTLOOPGROUP 和其实现类 NIOEVENTLOOPGROUP........................................................................................................................112
尚硅谷 Netty 核心技术及源码剖析
更多 Java –大数据 –前端 –python 人工智能- 区块链 资料下载,可访问百度:尚硅谷官网
第
V
页
6.10 UNPOOLED 类.......................................................................................................................................................................................... 113
6.11 NETTY 应用实例-群聊系统..................................................................................................................................................................... 117
6.12 NETTY 心跳检测机制案例...................................................................................................................................................................... 127
6.13 NETTY 通过 WEBSOCKET 编程实现服务器和客户端长连接.............................................................................................................. 132
第 7 章 GOOGLE PROTOBUF..................................................................................................................................................................... 141
7.1 编码和解码的基本介绍...........................................................................................................................................................................141
7.2 NETTY 本身的编码解码的机制和问题分析...........................................................................................................................................141
7.3 PROTOBUF................................................................................................................................................................................................... 142
7.4 PROTOBUF 快速入门实例.......................................................................................................................................................................... 143
7.5 PROTOBUF 快速入门实例 2....................................................................................................................................................................... 144
第 8 章 NETTY 编解码器和 HANDLER 的调用机制.................................................................................................................................147
8.1 基本说明................................................................................................................................................................................................... 147
8.2 编码解码器............................................................................................................................................................................................... 147
8.3 解码器-BYTETOMESSAGEDECODER.........................................................................................................................................................148
8.4 NETTY 的 HANDLER 链的调用机制........................................................................................................................................................... 149
8.5 解码器-REPLAYINGDECODER....................................................................................................................................................................151
8.6 其它编解码器........................................................................................................................................................................................... 152
8.6.1 其它解码器........................................................................................................................................................................152
8.6.2 其它编码器........................................................................................................................................................................152
8.7 LOG4J 整合到 NETTY................................................................................................................................................................................153
第 9 章 TCP 粘包和拆包 及解决方案..........................................................................................................................................................156
9.1 TCP 粘包和拆包基本介绍.......................................................................................................................................................................156
9.2 TCP 粘包和拆包现象实例.......................................................................................................................................................................157
9.3 TCP 粘包和拆包解决方案.......................................................................................................................................................................160
9.4 看一个具体的实例:..................................................................................................................................................................................161
第 10 章 NETTY 核心源码剖析.................................................................................................................................................................... 169
10.1 基本说明................................................................................................................................................................................................. 169
10.2 NETTY 启动过程源码剖析..................................................................................................................................................................... 169
10.2.1 源码剖析目的..................................................................................................................................................................169
10.2.2 源码剖析..........................................................................................................................................................................169
10.2.3 源码剖析过程..................................................................................................................................................................170
10.2.4 Netty 启动过程梳理.........................................................................................................................................................190
10.3 NETTY 接受请求过程源码剖析............................................................................................................................................................. 190
10.3.1 源码剖析目的..................................................................................................................................................................191
10.3.2 源码剖析..........................................................................................................................................................................191
10.3.3 Netty 接受请求过程梳理.................................................................................................................................................199
尚硅谷 Netty 核心技术及源码剖析
更多 Java –大数据 –前端 –python 人工智能- 区块链 资料下载,可访问百度:尚硅谷官网
第
VI
页
10.4 PIPELINE HANDLER HANDLERCONTEXT 创建源码剖析......................................................................................................................... 199
10.4.1 源码剖析目的..................................................................................................................................................................200
10.4.2 源码剖析说明..................................................................................................................................................................200
10.4.3 源码剖析..........................................................................................................................................................................200
10.4.4 Pipeline Handler HandlerContext 创建过程梳理............................................................................................................214
10.5 CHANNELPIPELINE 调度 HANDLER 的源码剖析.................................................................................................................................. 214
10.5.1 源码剖析目的..................................................................................................................................................................214
10.5.2 源码剖析..........................................................................................................................................................................214
10.5.3 ChannelPipeline 调度 handler 梳理.............................................................................................................................. 220
10.6 NETTY 心跳(HEARTBEAT)服务源码剖析............................................................................................................................................... 221
10.6.1 源码剖析目的..................................................................................................................................................................221
10.6.2 源码剖析..........................................................................................................................................................................221
10.7 NETTY 核心组件 EVENTLOOP 源码剖析..............................................................................................................................................231
10.7.1 源码剖析目的..................................................................................................................................................................231
10.7.2 源码剖析..........................................................................................................................................................................231
10.8 HANDLER 中加入线程池和 CONTEXT 中添加线程池的源码剖析......................................................................................................245
10.8.1 源码剖析目的..................................................................................................................................................................245
10.8.2 源码剖析..........................................................................................................................................................................245
第 11 章 用 NETTY 自己 实现 DUBBO RPC............................................................................................................................................252
11.1 RPC 基本介绍..........................................................................................................................................................................................252
11.2 RPC 调用流程图......................................................................................................................................................................................253
11.3 PRC 调用流程说明..................................................................................................................................................................................253
11.4 自己实现 DUBBO RPC(基于 NETTY).....................................................................................................................................................254
11.4.1 需求说明.......................................................................................................................................................................... 254
11.4.2 设计说明.......................................................................................................................................................................... 254
11.4.3 代码实现.......................................................................................................................................................................... 255
剩余271页未读,继续阅读
仙夜子
- 粉丝: 32
- 资源: 325
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0