图书介绍

Netty权威指南 第2版PDF|Epub|txt|kindle电子书版本网盘下载

Netty权威指南 第2版
  • 李林锋著作 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121258015
  • 出版时间:2015
  • 标注页数:554页
  • 文件大小:68MB
  • 文件页数:574页
  • 主题词:JAVA语言-程序设计-指南

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Netty权威指南 第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

基础篇 走进Java NIO2

第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源码分析30

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源码分析51

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

2.5 4种I/O的对比58

2.5.1 概念澄清58

2.5.2 不同I/O模型对比59

2.6 选择Netty的理由60

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

2.6.2 为什么选择Netty62

2.7 总结63

入门篇 Netty NIO开发指南66

第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 总结77

第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粘包问题85

4.3.1 支持TCP粘包的TimeServer86

4.3.2 支持TCP粘包的TimeClient88

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

4.3.4 LineBasedFrameDecoder和StringDecoder的原理分析91

4.4 总结92

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

5.1 DelimiterBasedFrameDecoder应用开发94

5.1.1 DelimiterBasedFrameDecoder服务端开发94

5.1.2 DelimiterBasedFrameDecoder客户端开发97

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

5.2 FixedLengthFrameDecoder应用开发101

5.2.1 FixedLengthFrameDecoder服务端开发101

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

5.3 总结104

中级篇 Netty编解码开发指南106

第6章 编解码技术106

6.1 Java序列化的缺点107

6.1.1 无法跨语言107

6.1.2 序列化后的码流太大107

6.1.3 序列化性能太低110

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

6.2.1 Google的Protobuf介绍113

6.2.2 Facebook的Thrift介绍115

6.2.3 JBoss Marshalling介绍116

6.3 总结117

第7章 MessagePack编解码118

7.1 MessagePack介绍118

7.1.1 MessagePack多语言支持119

7.1.2 MessagePack Java API介绍119

7.1.3 MessagePack开发包下载120

7.2 MessagePack编码器和解码器开发120

7.2.1 MessagePack编码器开发120

7.2.2 MessagePack解码器开发121

7.2.3 功能测试121

7.3 粘包/半包支持124

7.4 总结127

第8章 Google Protobuf编解码128

8.1 Protobuf的入门129

8.1.1 Protobuf开发环境搭建129

8.1.2 Protobuf编解码开发131

8.1.3 运行Protobuf例程133

8.2 Netty的Protobuf服务端开发133

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

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

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

8.3 Protobuf的使用注意事项140

8.4 总结142

第9章 JBoss Marshalling编解码143

9.1 Marshalling开发环境准备143

9.2 Netty的Marshalling服务端开发144

9.3 Netty的Marshalling客户端开发147

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

9.5 总结150

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

第10章 HTTP协议开发应用154

10.1 HTTP协议介绍155

10.1.1 HTTP协议的URL155

10.1.2 HTTP请求消息(HttpRequest)155

10.1.3 HTTP响应消息(HttpResponse)158

10.2 Netty HTTP服务端入门开发159

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

10.2.2 HTTP服务端开发160

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

10.3 Netty HTTP+XML协议栈开发170

10.3.1 开发场景介绍171

10.3.2 HTTP+XML协议栈设计174

10.3.3 高效的XML绑定框架JiBx175

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

10.3.5 HTTP+XML协议栈测试199

10.3.6 小结201

10.4 总结202

第11章 WebSocket协议开发203

11.1 HTTP协议的弊端204

11.2 WebSocket入门204

11.2.1 WebSocket背景205

11.2.2 WebSocket连接建立206

11.2.3 WebSocket生命周期207

11.2.4 WebSocket连接关闭208

11.3 Netty WebSocket协议开发209

11.3.1 WebSocket服务端功能介绍209

11.3.2 WebSocket服务端开发210

11.3.3 运行WebSocket服务端218

11.4 总结219

第12章 私有协议栈开发221

12.1 私有协议介绍221

12.2 Netty协议栈功能设计223

12.2.1 网络拓扑图223

12.2.2 协议栈功能描述224

12.2.3 通信模型224

12.2.4 消息定义225

12.2.5 Netty协议支持的字段类型226

12.2.6 Netty协议的编解码规范227

12.2.7 链路的建立229

12.2.8 链路的关闭230

12.2.9 可靠性设计230

12.2.10 安全性设计232

12.2.11 可扩展性设计232

12.3 Netty协议栈开发233

12.3.1 数据结构定义233

12.3.2 消息编解码237

12.3.3 握手和安全认证241

12.3.4 心跳检测机制245

12.3.5 断连重连248

12.3.6 客户端代码249

12.3.7 服务端代码251

12.4 运行协议栈252

12.4.1 正常场景252

12.4.2 异常场景:服务端宕机重启253

12.4.3 异常场景:客户端宕机重启256

12.5 总结256

第13章 服务端创建258

13.1 原生NIO类库的复杂性259

13.2 Netty服务端创建源码分析259

13.2.1 Netty服务端创建时序图260

13.2.2 Netty服务端创建源码分析263

13.3 客户端接入源码分析272

13.4 总结275

第14章 客户端创建276

14.1 Netty客户端创建流程分析276

14.2.1 Netty客户端创建时序图276

14.2.2 Netty客户端创建流程分析277

14.2 Netty客户端创建源码分析278

14.2.1 客户端连接辅助类Bootstrap278

14.2.2 客户端连接操作281

14.2.3 异步连接结果通知283

14.2.4 客户端连接超时机制284

14.3 总结286

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

第15章 ByteBuf和相关辅助类288

15.1 ByteBuf功能说明288

15.1.1 ByteBuf的工作原理289

15.1.2 ByteBuf的功能介绍294

15.2 ByteBuf源码分析308

15.2.1 ByteBuf的主要类继承关系309

15.2.2 AbstractByteBuf源码分析310

15.2.3 AbstractReferenceCountedByteBuf源码分析319

15.2.4 UnpooledHeapByteBuf源码分析321

15.2.5 PooledByteBuf内存池原理分析326

15.2.6 PooledDirectByteBuf源码分析329

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

15.3.1 ByteBufHolder332

15.3.2 ByteBufAllocator333

15.3.3 CompositeByteBuf334

15.3.4 ByteBufUtil336

15.4 总结337

第16章 Channel和Unsafe338

16.1 Channel功能说明338

16.1.1 Channel的工作原理339

16.1.2 Channel的功能介绍340

16.2 Channel源码分析343

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

16.2.2 AbstractChannel源码分析344

16.2.3 AbstractNioChannel源码分析347

16.2.4 AbstractNioByteChannel源码分析350

16.2.5 AbstractNioMessageChannel源码分析353

16.2.6 AbstractNioMessageServerChannel源码分析354

16.2.7 NioServerSocketChannel源码分析355

16.2.8 NioSocketChannel源码分析358

16.3 Unsafe功能说明364

16.4 Unsafe源码分析365

16.4.1 Unsafe继承关系类图365

16.4.2 AbstractUnsafe源码分析366

16.4.3 AbstractNioUnsafe源码分析375

16.4.4 NioByteUnsafe源码分析379

16.5 总结387

第17章 ChannelPipeline和ChannelHandler388

17.1 ChannelPipeline功能说明389

17.1.1 ChannelPipeline的事件处理389

17.1.2 自定义拦截器391

17.1.3 构建pipeline392

17.1.4 ChannelPipeline的主要特性393

17.2 ChannelPipeline源码分析393

17.2.1 ChannelPipeline的类继承关系图393

17.2.2 ChannelPipeline对ChannelHandler的管理393

17.2.3 ChannelPipeline的inbound事件396

17.2.4 ChannelPipeline的outbound事件397

17.3 ChannelHandler功能说明398

17.3.1 ChannelHandlerAdapter功能说明399

17.3.2 ByteToMessageDecoder功能说明399

17.3.3 MessageToMessageDecoder功能说明400

17.3.4 LengthFieldBasedFrameDecoder功能说明400

17.3.5 MessageToByteEncoder功能说明404

17.3.6 MessageToMessageEncoder功能说明404

17.3.7 LengthFieldPrepender功能说明405

17.4 ChannelHandler源码分析406

17.4.1 ChannelHandler的类继承关系图406

17.4.2 ByteToMessageDecoder源码分析407

17.4.3 MessageToMessageDecoder源码分析410

17.4.4 LengthFieldBasedFrameDecoder源码分析411

17.4.5 MessageToByteEncoder源码分析415

17.4.6 MessageToMessageEncoder源码分析416

17.4.7 LengthFieldPrepender源码分析417

17.5 总结418

第18章 EventLoop和EventLoopGroup419

18.1 Netty的线程模型419

18.1.1 Reactor单线程模型420

18.1.2 Reactor多线程模型421

18.1.3 主从Reactor多线程模型422

18.1.4 Netty的线程模型423

18.1.5 最佳实践424

18.2 NioEventLoop源码分析425

18.2.1 NioEventLoop设计原理425

18.2.2 NioEventLoop继承关系类图426

18.2.3 NioEventLoop427

18.3 总结436

第19章 Future和Promise438

19.1 Future功能438

19.2 ChannelFuture源码分析443

19.3 Promise功能介绍445

19.4 Promise源码分析447

19.4.1 Promise继承关系图447

19.4.2 DefaultPromise447

19.5 总结449

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

第20章 Netty架构剖析452

20.1 Netty逻辑架构452

20.1.1 Reactor通信调度层453

20.1.2 职责链ChannelPipeline453

20.1.3 业务逻辑编排层(Service ChannelHandler)454

20.2 关键架构质量属性454

20.2.1 高性能454

20.2.2 可靠性457

20.2.3 可定制性460

20.2.4 可扩展性460

20.3 总结460

第21章 Java多线程编程在Netty中的应用461

21.1 Java内存模型与多线程编程461

21.1.1 硬件的发展和多任务处理461

21.1.2 Java内存模型462

21.2 Netty的并发编程实践464

21.2.1 对共享的可变数据进行正确的同步464

21.2.2 正确使用锁465

21.2.3 volatile的正确使用467

21.2.4 CAS指令和原子类470

21.2.5 线程安全类的应用472

21.2.6 读写锁的应用476

21.2.7 线程安全性文档说明477

21.2.8 不要依赖线程优先级478

21.3 总结479

第22章 高性能之道480

22.1 RPC调用性能模型分析480

22.1.1 传统RPC调用性能差的三宗罪480

22.1.2 I/O通信性能三原则481

22.2 Netty高性能之道482

22.2.1 异步非阻塞通信482

22.2.2 高效的Reactor线程模型482

22.2.3 无锁化的串行设计485

22.2.4 高效的并发编程486

22.2.5 高性能的序列化框架486

22.2.6 零拷贝487

22.2.7 内存池491

22.2.8 灵活的TCP参数配置能力494

22.3 主流NIO框架性能对比495

22.4 总结497

第23章 可靠性498

23.1 可靠性需求498

23.1.1 宕机的代价498

23.1.2 Netty可靠性需求499

23.2 Netty高可靠性设计500

23.2.1 网络通信类故障500

23.2.2 链路的有效性检测507

23.2.3 Reactor线程的保护510

23.2.4 内存保护513

23.2.5 流量整形516

23.2.6 优雅停机接口519

23.3 优化建议520

23.3.1 发送队列容量上限控制520

23.3.2 回推发送失败的消息521

23.4 总结521

第24章 安全性522

24.1 严峻的安全形势522

24.1.1 OpenSSL Heart bleed漏洞522

24.1.2 安全漏洞的代价523

24.1.3 Netty面临的安全风险523

24.2 Netty SSL安全特性525

24.2.1 SSL单向认证525

24.2.2 SSL双向认证532

24.2.3 第三方CA认证536

24.3 Netty SSL源码分析538

24.3.1 客户端538

24.3.2 服务端541

24.3.3 消息读取544

24.3.4 消息发送545

24.4 Netty扩展的安全特性546

24.4.1 IP地址黑名单机制547

24.4.2 接入认证548

24.4 总结550

第25章 Netty未来展望551

25.1 应用范围551

25.2 技术演进552

25.3 社区活跃度552

25.4 Road Map552

25.5 总结553

附录A Netty参数配置表554

热门推荐