美文网首页技术交流
《Netty权威指南》带目录书签电子书PDF下载

《Netty权威指南》带目录书签电子书PDF下载

作者: sunjian286 | 来源:发表于2020-03-17 16:03 被阅读0次

    《Netty权威指南》带目录书签电子书PDF下载:

    http://pan.ishare1.cn/file/2973105-429918882

    内容简介· · · · · ·

    《Netty权威指南》是异步非阻塞通信领域的经典之作,基于最新版本Netty 5.0编写,是国内首本深入介绍Netty原理和架构的技术书籍,也是作者多年实战经验的总结和浓缩。在理论方面,讲解了Netty的逻辑架构模型和核心类库的设计原理,而且对Netty在大数据、互联网、游戏行业的应用进行了深入分析;实战方面,从第一个Netty入门程序到私有协议栈的设计和开发,通过实际例程,由浅入深地对Netty的核心API和类库的功能和用法进行了细致讲解。

    《Netty权威指南》适合架构师、设计师、软件开发工程师、测试人员和其他对Java NIO框架、Java通信感兴趣的相关人士阅读,相信通过学习《Netty权威指南》,能够熟悉和掌握Netty这一优秀的异步通信框架,实现高可用分布式系统的构建。

    目录· · · · · ·

    基础篇 走进Java NIO

    第1章 Java的I/O演进之路 2

    1.1 I/O基础入门 3

    1.1.1 Linux网络I/O模型简介 3

    1.1.2 I/O多路复用技术 6

    1.2 Java的I/O演进 8

    1.3 总结 10

    第2章 NIO入门 11

    2.1 传统的BIO编程 11

    2.1.1 BIO通信模型图 12

    2.1.2 同步阻塞式I/O创建的TimeServer源码分析 13

    2.1.3 同步阻塞式I/O创建的TimeClient源码分析 16

    2.2 伪异步I/O编程 18

    2.2.1 伪异步I/O模型图 19

    2.2.2 伪异步式I/O创建的TimeServer源码分析 19

    2.2.3 伪异步I/O弊端分析 21

    2.3 NIO编程 24

    2.3.1 NIO类库简介 24

    2.3.2 NIO服务端序列图 28

    2.3.3 NIO创建的TimeServer源码分析 31

    2.3.4 NIO客户端序列图 36

    2.3.5 NIO创建的TimeClient源码分析 39

    2.4 AIO编程 45

    2.4.1 AIO创建的TimeServer源码分析 46

    2.4.2 AIO创建的TimeClient源码分析 52

    2.4.3 AIO版本时间服务器运行结果 56

    2.5 4种I/O的对比 58

    2.5.1 概念澄清 58

    2.5.2 不同I/O模型对比 60

    2.6 选择Netty的理由 60

    2.6.1 不选择Java原生NIO编程的原因 61

    2.6.2 为什么选择Netty 62

    2.7 总结 63

    入门篇 Netty NIO开发指南

    第3章 Netty入门应用 66

    3.1 Netty开发环境的搭建 66

    3.1.1 下载Netty的软件包 67

    3.1.2 搭建Netty应用工程 67

    3.2 Netty服务端开发 68

    3.3 Netty客户端开发 73

    3.4 运行和调试 76

    3.4.1 服务端和客户端的运行 76

    3.4.2 打包和部署 77

    3.5 总结 78

    第4章 TCP粘包/拆包问题的解决之道 79

    4.1 TCP粘包/拆包 79

    4.1.1 TCP粘包/拆包问题说明 80

    4.1.2 TCP粘包/拆包发生的原因 80

    4.1.3 粘包问题的解决策略 81

    4.2 未考虑TCP粘包导致功能异常案例 82

    4.2.1 TimeServer的改造 82

    4.2.2 TimeClient的改造 83

    4.2.3 运行结果 84

    4.3 利用LineBasedFrameDecoder解决TCP粘包问题 88

    4.3.1 支持TCP粘包的TimeServer 88

    4.3.2 支持TCP粘包的TimeClient 90

    4.3.3 运行支持TCP粘包的时间服务器程序 93

    4.3.4 LineBasedFrameDecoder和StringDecoder的原理分析 98

    4.4 总结 99

    第5章 分隔符和定长解码器的应用 100

    5.1 DelimiterBasedFrameDecoder应用开发 101

    5.1.1 DelimiterBasedFrameDecoder服务端开发 101

    5.1.2 DelimiterBasedFrameDecoder客户端开发 104

    5.1.3 运行DelimiterBasedFrameDecoder服务端和客户端 106

    5.2 FixedLengthFrameDecoder应用开发 108

    5.2.1 FixedLengthFrameDecoder服务端开发 108

    5.2.2 利用telnet命令行测试EchoServer服务端 110

    5.3 总结 111

    中级篇 Netty编解码开发指南

    第6章 编解码技术 114

    6.1 Java序列化的缺点 115

    6.1.1 无法跨语言 115

    6.1.2 序列化后的码流太大 115

    6.1.3 序列化性能太低 118

    6.2 业界主流的编解码框架 121

    6.2.1 Google的Protobuf介绍 121

    6.2.2 Facebook的Thrift介绍 123

    6.2.3 JBoss Marshalling介绍 124

    6.3 总结 125

    第7章 Java序列化 126

    7.1 Netty Java序列化服务端开发 126

    7.2 Java序列化Netty客户端开发 132

    7.3 运行结果 135

    7.4 总结 137

    第8章 Google Protobuf编解码 138

    8.1 Protobuf的入门 139

    8.1.1 Protobuf开发环境搭建 139

    8.1.2 Protobuf编解码开发 141

    8.1.3 运行Protobuf例程 143

    8.2 Netty的Protobuf服务端开发 143

    8.2.1 Protobuf版本的图书订购服务端开发 144

    8.2.2 Protobuf版本的图书订购客户端开发 146

    8.2.3 Protobuf版本的图书订购程序功能测试 149

    8.3 Protobuf的使用注意事项 152

    8.4 总结 153

    第9章 JBoss Marshalling编解码 154

    9.1 Marshalling开发环境准备 154

    9.2 Netty的Marshalling服务端开发 155

    9.3 Netty的Marshalling客户端开发 158

    9.4 运行Marshalling客户端和服务端例程 160

    9.5 总结 162

    高级篇 Netty多协议开发和应用

    第10章 HTTP协议开发应用 164

    10.1 HTTP协议介绍 165

    10.1.1 HTTP协议的URL 165

    10.1.2 HTTP请求消息(HttpRequest) 165

    10.1.3 HTTP响应消息(HttpResponse) 168

    10.2 Netty HTTP服务端入门开发 169

    10.2.1 HTTP服务端例程场景描述 170

    10.2.2 HTTP服务端开发 170

    10.2.3 Netty HTTP文件服务器例程运行结果 178

    10.3 Netty HTTP+XML协议栈开发 182

    10.3.1 开发场景介绍 183

    10.3.2 HTTP+XML协议栈设计 186

    10.3.3 高效的XML绑定框架JiBx 187

    10.3.4 HTTP+XML编解码框架开发 195

    10.3.5 HTTP+XML协议栈测试 211

    10.3.6 小结 213

    10.4 总结 214

    第11章 WebSocket协议开发 215

    11.1 HTTP协议的弊端 216

    11.2 WebSocket入门 216

    11.2.1 WebSocket背景 217

    11.2.2 WebSocket连接建立 218

    11.2.3 WebSocket生命周期 219

    11.2.4 WebSocket连接关闭 220

    11.3 Netty WebSocket协议开发 221

    11.3.1 WebSocket服务端功能介绍 221

    11.3.2 WebSocket服务端开发 222

    11.3.3 运行WebSocket服务端 230

    11.4 总结 231

    第12章 UDP协议开发 233

    12.1 UDP协议简介 234

    12.2 UDP服务端开发 235

    12.3 UDP客户端开发 238

    12.4 运行UDP例程 240

    12.5 总结 241

    第13章 文件传输 242

    13.1 文件的基础知识 243

    13.1.1 文件的概念 243

    13.1.2 文件路径 243

    13.1.3 文件名称 244

    13.1.4 FileChannel简介 244

    13.2 Netty文件传输开发 245

    13.3 运行Netty文件传输服务例程 248

    13.4 总结 250

    第14章 私有协议栈开发 251

    14.1 私有协议介绍 251

    14.2 Netty协议栈功能设计 253

    14.2.1 网络拓扑图 253

    14.2.2 协议栈功能描述 254

    14.2.3 通信模型 254

    14.2.4 消息定义 255

    14.2.5 Netty协议支持的字段类型 256

    14.2.6 Netty协议的编解码规范 257

    14.2.7 链路的建立 259

    14.2.8 链路的关闭 260

    14.2.9 可靠性设计 260

    14.2.10 安全性设计 262

    14.2.11 可扩展性设计 262

    14.3 Netty协议栈开发 263

    14.3.1 数据结构定义 263

    14.3.2 消息编解码 267

    14.3.3 握手和安全认证 271

    14.3.4 心跳检测机制 275

    14.3.5 断连重连 278

    14.3.6 客户端代码 279

    14.3.7 服务端代码 281

    14.4 运行协议栈 282

    14.4.1 正常场景 282

    14.4.2 异常场景:服务端宕机重启 283

    14.4.3 异常场景:客户端宕机重启 286

    14.5 总结 286

    源码分析篇 Netty功能介绍和源码分析

    第15章 ByteBuf和相关辅助类 290

    15.1 ByteBuf功能说明 290

    15.1.1 ByteBuf的工作原理 291

    15.1.2 ByteBuf的功能介绍 296

    15.2 ByteBuf源码分析 310

    15.2.1 ByteBuf的主要类继承关系 311

    15.2.2 AbstractByteBuf源码分析 312

    15.2.3 AbstractReferenceCountedByteBuf源码分析 321

    15.2.4 UnpooledHeapByteBuf源码分析 323

    15.2.5 PooledByteBuf内存池原理分析 328

    15.2.6 PooledDirectByteBuf源码分析 331

    15.3 ByteBuf相关的辅助类功能介绍 334

    15.3.1 ByteBufHolder 334

    15.3.2 ByteBufAllocator 335

    15.3.3 CompositeByteBuf 336

    15.3.4 ByteBufUtil 338

    15.4 总结 339

    第16章 Channel和Unsafe 340

    16.1 Channel 功能说明 340

    16.1.1 Channel的工作原理 341

    16.1.2 Channel的功能介绍 342

    16.2 Channel源码分析 345

    16.2.1 Channel的主要继承关系类图 345

    16.2.2 AbstractChannel源码分析 346

    16.2.3 AbstractNioChannel源码分析 349

    16.2.4 AbstractNioByteChannel源码分析 352

    16.2.5 AbstractNioMessageChannel源码分析 356

    16.2.6 AbstractNioMessageServerChannel源码分析 357

    16.2.7 NioServerSocketChannel源码分析 358

    16.2.8 NioSocketChannel源码分析 360

    16.3 Unsafe功能说明 366

    16.4 Unsafe源码分析 367

    16.4.1 Unsafe继承关系类图 367

    16.4.2 AbstractUnsafe源码分析 367

    16.4.3 AbstractNioUnsafe源码分析 377

    16.4.4 NioByteUnsafe源码分析 380

    16.5 总结 387

    第17章 ChannelPipeline和ChannelHandler 389

    17.1 ChannelPipeline功能说明 390

    17.1.1 ChannelPipeline的事件处理 390

    17.1.2 自定义拦截器 392

    17.1.3 构建pipeline 393

    17.1.4 ChannelPipeline的主要特性 394

    17.2 ChannelPipeline源码分析 394

    17.2.1 ChannelPipeline的类继承关系图 394

    17.2.2 ChannelPipeline对ChannelHandler的管理 394

    17.2.3 ChannelPipeline的inbound事件 397

    17.2.4 ChannelPipeline的outbound事件 398

    17.3 ChannelHandler功能说明 399

    17.3.1 ChannelHandlerAdapter功能说明 400

    17.3.2 ByteToMessageDecoder功能说明 400

    17.3.3 MessageToMessageDecoder功能说明 401

    17.3.4 LengthFieldBasedFrameDecoder功能说明 402

    17.3.5 MessageToByteEncoder功能说明 405

    17.3.6 MessageToMessageEncoder功能说明 406

    17.3.7 LengthFieldPrepender功能说明 406

    17.4 ChannelHandler源码分析 407

    17.4.1 ChannelHandler的类继承关系图 407

    17.4.2 ByteToMessageDecoder源码分析 408

    17.4.3 MessageToMessageDecoder源码分析 411

    17.4.4 LengthFieldBasedFrameDecoder源码分析 413

    17.4.5 MessageToByteEncoder源码分析 417

    17.4.6 MessageToMessageEncoder源码分析 418

    17.4.7 LengthFieldPrepender源码分析 419

    17.5 总结 420

    第18章 EventLoop和EventLoopGroup 421

    18.1 Netty的线程模型 421

    18.1.1 Reactor单线程模型 422

    18.1.2 Reactor多线程模型 423

    18.1.3 主从Reactor多线程模型 424

    18.1.4 Netty的线程模型 425

    18.1.5 最佳实践 427

    18.2 NioEventLoop源码分析 427

    18.2.1 NioEventLoop设计原理 427

    18.2.2 NioEventLoop继承关系类图 428

    18.2.3 NioEventLoop 429

    18.3 总结 440

    第19章 Future和Promise 441

    19.1 Future功能 441

    19.2 ChannelFuture源码分析 446

    19.3 Promise功能介绍 448

    19.4 Promise源码分析 450

    19.4.1 Promise继承关系图 450

    19.4.2 DefaultPromise 450

    19.5 总结 453

    架构和行业应用篇 Netty高级特性

    第20章 Java多线程编程在Netty中的应用 456

    20.1 Java内存模型与多线程编程 456

    20.1.1 硬件的发展和多任务处理 456

    20.1.2 Java内存模型 457

    20.2 Netty的并发编程实践 459

    20.2.1 对共享的可变数据进行正确的同步 459

    20.2.2 正确的使用锁 460

    20.2.3 volatile的正确使用 462

    20.2.4 CAS指令和原子类 465

    20.2.5 线程安全类的应用 467

    20.2.6 读写锁的应用 470

    20.2.7 线程安全性文档说明 472

    20.2.8 不要依赖线程优先级 473

    20.3 总结 474

    第21章 Netty架构剖析 475

    21.1 Netty逻辑架构 475

    21.1.1 Reactor通信调度层 476

    21.1.2 职责链ChannelPipeline 476

    21.1.3 业务逻辑编排层(Service ChannelHandler) 477

    21.2 关键架构质量属性 477

    21.2.1 高性能 477

    21.2.2 可靠性 480

    21.2.3 可定制性 483

    21.2.4 可扩展性 483

    21.3 总结 483

    第22章 Netty行业应用 484

    22.1 Netty在互联网行业的应用 485

    22.1.1 传统垂直架构面临的问题 485

    22.1.2 阿里分布式服务框架Dubbo 485

    22.1.3 Dubbo的架构介绍 487

    22.1.4 Netty在Dubbo中的应用 489

    22.1.5 Dubbo框架集成Netty源码分析 491

    22.2 Netty在大数据领域的应用 496

    22.3 Netty在游戏行业的应用 497

    22.3.1 游戏服务端架构介绍 498

    22.3.2 Netty在游戏服务端的应用 501

    22.4 总结 502

    第23章 Netty未来展望 503

    23.1 应用范围 503

    23.2 技术演进 504

    23.3 社区活跃度 504

    23.4 Road Map 504

    23.5 总结 505

    附录A Netty参数配置表 506

    下载地址:

    《Netty权威指南》带目录书签电子书PDF下载@ishare1.cn.pdf:http://pan.ishare1.cn/file/2973105-429918882

    相关文章

      网友评论

        本文标题:《Netty权威指南》带目录书签电子书PDF下载

        本文链接:https://www.haomeiwen.com/subject/vxityhtx.html