Netty 4核心原理与手写RPC框架实战 谭勇德Tom Netty设计模式应用 Netty手写Tpdf下载

Netty 4核心原理与手写RPC框架实战 谭勇德Tom Netty设计模式应用 Netty手写T百度网盘pdf下载

作者:
简介:Netty 4核心原理与手写RPC框架实战 谭勇德Tom Netty设计模式应用 Netty手写T
出版社:
出版时间:2020-03
pdf下载价格:9.00¥


预览


内容介绍




Netty 4核心原理与手写RPC框架实战
            定价 108.00
出版社 电子工业出版社
版次 1
出版时间 2020年03月
开本 16开
作者 谭勇德(Tom)
装帧 平塑勒单衬
页数 456
字数 634000
ISBN编码 9787121385063


内容介绍

《Netty 4核心原理与手写RPC框架实战》1先从硬件层面深入分析网络通信原理,结合Java对网络I/O的API实现,将理论与实践串联起来,帮助大家透彻理解网络通信的起源,然后介绍Netty产生的背景并基于Netty手写Tomcat和RPC框架,帮助大家初步了解Netty的作用,接着分析Netty的核心原理和核心组件,基于Netty手写一个消息推送系统并进行性能调优,Z后介绍设计模式在Netty中的应用和经典的面试题分析。如果你想深入了解网络通信原理,如果你还不知道Netty能做什么,如果你想深入了解Netty的实现原理,如果你看源码找不到入口,无从下手,如果你想了解设计模式在Netty中的应用,本书都能帮到你。

作者介绍

谭勇德(Tom)10余年Java开发经验。咕泡学院联合创始人。著有畅销书《Spring 5核心原理与30个类手写实战》。在大型IT公司担任过CTO、系统架构师。精通Java、JS、CSS、AS、PHP等;负责过多个大型分布式系统的微服务架构的技术改造;多年来对Netty框架有深入研究及D特见解;开发过多套企业内部UI框架和ORM框架;热衷于分享经验,共同进步。格言:不只做一个技术者,更要做一个思考者。

关联推荐

如果你想深入了解网络通信原理,如果你还不知道Netty能做什么,如果你想深入了解Netty的实现原理,如果你看源码找不到入口,无从下手,如果你想了解设计模式在Netty中的应用,本书都能帮到你。
目录

目录  

D 1 篇 I/O 基础篇  

D 1 章 网络通信原理 2  

11 网络基础架构  2  

111 C/S 架构  2  

112 C/S 信息传输流程  2  

12 TCP/IP 五层模型详解  3  

121 物理层  3  

122 数据链路层  4  

123 网络层  5  

124 传输层  10  

125 应用层  15  

126 小结  16  

13 网络通信实现原理  18  

14 向浏览器输入 URL 后发生了什么  19  

15 网络通信之“魂”——Socket 21  

D 2 章 Java I/O 演进之路 23  

21 I/O 的问世  23  

211 什么是 I/O  23  

212 I/O 交互流程  24  

22 五种 I/O 通信模型  25  

221 阻塞 I/O 模型  25  

222 非阻塞 I/O 模型  26  

223 多路复用 I/O 模型  27  

224 信号驱动 I/O 模型  28  

225 异步 I/O 模型  28  

226 易混淆的概念澄清  29  

227 各 I/O 模型的对比与zong结  32  

23 从 BIO 到 NIO 的演进  33  

231 面向流与面向缓冲  33  

232 阻塞与非阻塞  33  

233 选择器在 I/O 中的应用  34  

234 NIO 和 BIO 如何影响应用程序的设计  34  

24 Java AIO 详解  37  

241 AIO 基本原理  37  

242 AIO 初体验  38  

D 2 篇 Netty 初体验  

D 3 章 Netty 与 NIO 之前世今生  44  

31 Java NIO 三件套  44  

311 缓冲区  44  

312 选择器  54  

313 通道  58  

32 NIO 源码初探  63  

33 反应堆  69  

34 Netty 与 NIO  70  

341 Netty 支持的功能与特性  70  

342 Netty 采用 NIO 而非 AIO 的理由  71  

D 4 章 基于 Netty 手写 Tomcat 72  

41 环境准备  72  

411 定义 GPServlet 抽象类  72  

412 创建用户业务代码  73  

413 完成 webproperties 配置  74  

42 基于传统 I/O 手写 Tomcat  74  

421 创建 GPRequest 对象  74  

422 创建 GPResponse 对象  76  

423 创建 GPTomcat 启动类  77  

43 基于 Netty 重构 Tomcat 实现  80  

431 重构 GPTomcat 逻辑  80  

432 重构 GPRequest 逻辑  83  

433 重构 GPResponse 逻辑  84  

434 运行效果演示  85  

D 5 章 基于 Netty 重构 RPC 框架  87  

51 RPC 概述  87  

52 环境预设  88  

53 代码实战  91  

531 创建 API 模块  91  

532 创建自定义协议  91  

533 实现 Provider 业务逻辑  92  

534 完成 Registry 服务注册  93  

535 实现 Consumer 远程调用  97  

536 Monitor 监控  101  

54 运行效果演示  102  

D 3 篇 Netty 核心篇  

D 6 章 Netty 高性能之道  104  

61 背景介绍  104  

611 Netty 惊人的性能数据  104  

612 传统 RPC 调用性能差的“三宗罪” 104  

613 Netty 高性能的三个主题  105  

62 Netty 高性能之核心法宝  106  

621 异步非阻塞通信  106  

622 零拷贝  108  

623 内存池  112  

624 高效的 Reactor 线程模型  116  

625 无锁化的串行设计理念  118  

626 高效的并发编程  119  

627 对高性能的序列化框架的支持  119  

628 灵活的 TCP 参数配置能力  120  

D 7 章 揭开 Bootstrap 的神秘面纱 124  

71 客户端 Bootstrap  124  

711 Channel 简介  124  

712 NioSocketChannel 的创建  125  

713 客户端 Channel 的初始化  127  

714 Unsafe 属性的初始化  130  

715 ChannelPipeline 的初始化  131  

716 EventLoop 的初始化  132  

717 将 Channel 注册到 Selector  137  

718 Handler 的添加过程  139  

719 客户端发起连接请求  141  

72 服务端 ServerBootstrap  144  

721 NioServerSocketChannel 的创建  146  

722 服务端 Channel 的初始化  146  

723 服务端 ChannelPipeline 的初始化  149  

724 将服务端 Channel 注册到 Selector  149  

725 bossGroup 与 workerGroup 149  

726 服务端 Selector 事件轮询  152  

727 Netty 解决 JDK 空轮询 Bug 154  

728 Netty 对 Selector 中 KeySet 的优化  157  

729 Handler 的添加过程  160  

D 8 章 大名鼎鼎的 EventLoop  164  

81 EventLoopGroup 与 Reactor  164  

811 再谈 Reactor 线程模型  164  

812 EventLoopGroup 与 Reactor 关联  166  

813 EventLoopGroup 的实例化  167  

82 任务执行者 EventLoop  169  

821 NioEventLoop 的实例化过程  170  

822 EventLoop 与 Channel 的关联  171  

823 EventLoop 的启动  172  

D 9 章 Netty 大动脉 Pipeline  176  

91 Pipeline 设计原理  176  

911 Channel 与 ChannelPipeline  176  

912 再谈 ChannelPipeline 的初始化  177  

913 ChannelInitializer 的添加 178  

914 自定义 ChannelHandler 的添加过程  181  

915 给 ChannelHandler 命名  184  

916 ChannelHandler 的默认命名规则  185  

92 Pipeline 的事件传播机制  186  

921 Outbound 事件传播方式  194  

922 Inbound 事件传播方式  196  

923 小结  199  

93 Handler 的各种“姿势”  200  

931 ChannelHandlerContext  200  

932 Channel 的生命周期  201  

933 ChannelHandler 常用的 API  201  

934 ChannelInboundHandler  202  

D 10 章 异步处理双子星 Future 与 Promise  204  

101 异步结果 Future  204  

102 异步执行 Promise  205  

D 11 章 Netty 内存分配 ByteBuf  209  

111 初识 ByteBuf  209  

1111 ByteBuf 的基本结构  209  

1112 ByteBuf 的重要 API  210  

1113 ByteBuf 的基本分类  213  

112 ByteBufAllocator 内存管理器  214  

113 非池化内存分配  218  

1131 堆内内存的分配  218  

1132 堆外内存的分配  221  

114 池化内存分配  224  

1141 PooledByteBufAllocator 简述  224  

1142 DirectArena 内存分配流程  229  

1143 内存池的内存规格  231  

1144 命中缓存的分配  231  

1145 Page 级别的内存分配  241  

1146 SubPage 级别的内存分配  254  

1147 内存池 ByteBuf 的内存回收  268  

1148 SocketChannel 读取 ByteBuf 的过程  273  

D 12 章 Netty 编解码的艺术  281  

121 什么是拆包、粘包  281  

1211 TCP 拆包、粘包  281  

1212 粘包问题的解决策略  282  

122 什么是编解码  282  

1221 编解码技术  282  

1222 Netty 为什么要提供编解码框架  283  

123 Netty 中常用的解码器  284  

1231 ByteToMessageDecoder 抽象解码器  284  

1232 LineBasedFrameDecoder 行解码器  289  

1233 DelimiterBasedFrameDecoder 分隔符解码器  296  

1234 FixedLengthFrameDecoder 固定长度解码器  302  

1235 LengthFieldBasedFrameDecoder 通用解码器  303  

124 Netty 编码器原理和数据输出  307  

1241 WriteAndFlush 事件传播  307  

1242 MessageToByteEncoder 抽象编码器  311  

1243 写入 Buffer 队列  312  

1244 刷新 Buffer 队列  316  

1245 数据输出回调  322  

125 自定义编解码  335  

1251 MessageToMessageDecoder 抽象解码器  335  

1252 MessageToMessageEncoder 抽象编码器  336  

1253 ObjectEncoder 序列化编码器  337  

1254 LengthFieldPrepender 通用编码器  338  

D 4 篇 Netty 实战篇  

D 13 章 基于 Netty 手写消息推送系统  342  

131 环境搭建  342  

132 多协议通信设计  343  

1321 自定义协议规则  343  

1322 自定义编解码器  346  

1323 对 HTTP 的支持  349  

1324 对自定义协议的支持  351  

1325 对 WebSocket 协议的支持  351  

133 服务端逻辑处理  352  

1331 多协议串行处理  352  

1332 服务端用户中心  354  

134 客户端控制台处理  359  

1341 控制台接入代码  359  

1342 控制台消息处理  360  

135 客户端 Web 页面交互实现  363  

1351 Web 页面设计  363  

1352 WebSocket 接入  365  

1353 登录和退出  366  

1354 发送文字信息  367  

1355 发送图片表情  368  

1356 发送鲜花雨TX  369  

D 14 章 Netty 高性能调优工具类解析  371  

141 多线程共享 FastThreadLocal  371  

1411 FastThreadLocal 的使用和创建  371  

1412 FastThreadLocal 的设值  379  

142 Recycler 对象回收站  381  

1421 Recycler 的使用和创建  381  

1422 从 Recycler 中获取对象  386  

1423 相同线程内的对象回收  389  

1424 不同线程间的对象回收  391  

1425 获取不同线程间释放的对象  397  

D 15 章 单机百万连接性能调优  405  

151 模拟 Netty 单机连接瓶颈  405  

152 单机百万连接调优解决思路  410  

1521 突破局部文件句柄限制  410  

1522 突破全局文件句柄限制  412  

153 Netty 应用级别的性能调优  413  

1531 Netty 应用级别的性能瓶颈复现  413  

1532 Netty 应用级别的性能调优方案  420  

D 16 章 设计模式在 Netty 中的应用  422  

161 单例模式源码举例  422  

162 策略模式源码举例  423  

163 装饰者模式源码举例  424  

164 观察者模式源码举例  426  

165 迭代器模式源码举例  427  

166 责任链模式源码举例  428  

167 工厂模式源码举例  430  

D 17 章 Netty 经典面试题集锦 432  

171 基础知识部分  432  

1711 TCP 和 UDP 的根本区别  432  

1712 TCP 如何保证可靠传输  433  

1713 Netty 能解决什么问题  433  

1714 选用 Netty 作为通信组件框架的举例  433  

1715 Netty 有哪些主要组件,它们之间有什么关联  433  

172 GJ特性部分  434  

1721 相较同类框架,Netty 有哪些优势  434  

1722 Netty 的高性能体现在哪些方面  434  

1723 默认情况下 Netty 起多少线程,何时启动  434  

1724 Netty 有几种发送消息的方式  434  

1725 Netty 支持哪些心跳类型设置  435  

1726 Netty 和 Tomcat 的区别  435  

1727 在实际应用中,如何确定要使用哪些编解码器  435