图书介绍

Netty实战PDF|Epub|txt|kindle电子书版本网盘下载

Netty实战
  • (美)诺曼·毛瑞尔(Norman Maurer),马文·艾伦·沃尔夫泰尔 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115453686
  • 出版时间:2017
  • 标注页数:252页
  • 文件大小:41MB
  • 文件页数:274页
  • 主题词:JAVA语言-程序设计

PDF下载


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

下载说明

Netty实战PDF格式电子书版下载

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

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

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

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

图书目录

第一部分 Netty的概念及体系结构3

第1章 Netty——异步和事件驱动3

1.1 Java网络编程4

1.1.1 Java NIO5

1.1.2 选择器6

1.2 Netty简介6

1.2.1 谁在使用Netty7

1.2.2 异步和事件驱动8

1.3 Netty的核心组件9

1.3.1 Channel9

1.3.2 回调9

1.3.3 Future10

1.3.4 事件和ChannelHandler11

1.3.5 把它们放在一起12

1.4 小结13

第2章 你的第一款Netty应用程序14

2.1 设置开发环境14

2.1.1 获取并安装Java开发工具包14

2.1.2 下载并安装IDE15

2.1.3 下载和安装Apache Maven15

2.1.4 配置工具集16

2.2 Netty客户端/服务器概览16

2.3 编写Echo服务器17

2.3.1 ChannelHandler和业务逻辑17

2.3.2 引导服务器18

2.4 编写Echo客户端21

2.4.1 通过ChannelHandler实现客户端逻辑21

2.4.2 引导客户端22

2.5 构建和运行Echo服务器和客户端24

2.5.1 运行构建24

2.5.2 运行Echo服务器和客户端27

2.6 小结29

第3章 Netty的组件和设计30

3.1 Channel、EventLoop和ChannelFuture30

3.1.1 Channel接口31

3.1.2 EventLoop接口31

3.1.3 ChannelFuture接口32

3.2 ChannelHandler和ChannelPipeline32

3.2.1 ChannelHandler接口32

3.2.2 ChannelPipeline接口33

3.2.3 更加深入地了解ChannelHandler34

3.2.4 编码器和解码器35

3.2.5 抽象类SimpleChannel-InboundHandler35

3.3 引导36

3.4 小结37

第4章 传输38

4.1 案例研究:传输迁移38

4.1.1 不通过Netty使用OIO和NIO39

4.1.2 通过Netty使用OIO和NIO41

4.1.3 非阻塞的Netty版本42

4.2 传输API43

4.3 内置的传输45

4.3.1 NIO——非阻塞I/O46

4.3.2 Epoll——用于Linux的本地非阻塞传输47

4.3.3 OIO——旧的阻塞I/O48

4.3.4 用于JVM内部通信的Local传输48

4.3.5 Embedded传输49

4.4 传输的用例49

4.5 小结51

第5章 ByteBuf52

5.1 ByteBuf的API52

5.2 ByteBuf类—Netty的数据容器53

5.2.1 它是如何工作的53

5.2.2 ByteBuf的使用模式53

5.3 字节级操作57

5.3.1 随机访问索引57

5.3.2 顺序访问索引57

5.3.3 可丢弃字节58

5.3.4 可读字节58

5.3.5 可写字节59

5.3.6 索引管理59

5.3.7 查找操作60

5.3.8 派生缓冲区60

5.3.9 读/写操作62

5.3.10 更多的操作64

5.4 ByteBufHolder接口65

5.5 ByteBuf分配65

5.5.1 按需分配:Byte-BufAllocator接口65

5.5.2 Unpooled缓冲区67

5.5.3 ByteBufUtil类67

5.6 引用计数67

5.7 小结68

第6章 ChannelHandler和ChannelPipeline70

6.1 ChannelHandler家族70

6.1.1 Channel的生命周期70

6.1.2 ChannelHandler的生命周期71

6.1.3 ChannelInboundHandler接口71

6.1.4 ChannelOutboundHandler接口73

6.1.5 ChannelHandler适配器74

6.1.6 资源管理74

6.2 ChannelPipeline接口76

6.2.1 修改ChannelPipeline78

6.2.2 触发事件79

6.3 ChannelHandlerContext接口80

6.3.1 使用Channel-HandlerContext82

6.3.2 ChannelHandler和ChannelHandlerContext的高级用法84

6.4 异常处理86

6.4.1 处理入站异常86

6.4.2 处理出站异常87

6.5 小结88

第7章 EventLoop和线程模型89

7.1 线程模型概述89

7.2 EventLoop接口90

7.2.1 Netty 4中的I/O和事件处理92

7.2.2 Netty 3中的I/O操作92

7.3 任务调度93

7.3.1 JDK的任务调度API93

7.3.2 使用EventLoop调度任务94

7.4 实现细节95

7.4.1 线程管理95

7.4.2 EventLoop/线程的分配96

7.5 小结98

第8章 引导99

8.1 Bootstrap类99

8.2 引导客户端和无连接协议101

8.2.1 引导客户端102

8.2.2 Channel和EventLoop-Group的兼容性103

8.3 引导服务器104

8.3.1 ServerBootstrap类104

8.3.2 引导服务器105

8.4 从Channel引导客户端107

8.5 在引导过程中添加多个ChannelHandler108

8.6 使用Netty的Channel-Option和属性110

8.7 引导DatagramChannel111

8.8 关闭112

8.9 小结112

第9章 单元测试113

9.1 EmbeddedChannel概述113

9.2 使用EmbeddedChannel测试ChannelHandler115

9.2.1 测试入站消息115

9.2.2 测试出站消息118

9.3 测试异常处理119

9.4 小结121

第二部分 编解码器125

第10章 编解码器框架125

10.1 什么是编解码器125

10.2 解码器125

10.2.1 抽象类ByteTo-MessageDecoder126

10.2.2 抽象类ReplayingDecoder127

10.2.3 抽象类Message-ToMessageDecoder128

10.2.4 TooLong-FrameException类130

10.3 编码器131

10.3.1 抽象类Message-ToByteEncoder131

10.3.2 抽象类Message-ToMessageEncoder132

10.4 抽象的编解码器类133

10.4.1 抽象类Byte-ToMessageCodec133

10.4.2 抽象类Message-ToMessageCodec134

10.4.3 CombinedChannel-DuplexHandler类137

10.5 小结138

第11章 预置的ChannelHandler和编解码器139

11.1 通过SSL/TLS保护Netty应用程序139

11.2 构建基于Netty的HTTP/HTTPS应用程序141

11.2.1 HTTP解码器、编码器和编解码器141

11.2.2 聚合HTTP消息143

11.2.3 HTTP压缩144

11.2.4 使用HTTPS145

11.2.5 WebSocket146

11.3 空闲的连接和超时148

11.4 解码基于分隔符的协议和基于长度的协议150

11.4.1 基于分隔符的协议150

11.4.2 基于长度的协议153

11.5 写大型数据155

11.6 序列化数据157

11.6.1 JDK序列化157

11.6.2 使用JBoss Marshalling进行序列化157

11.6.3 通过Protocol Buffers序列化159

11.7 小结160

第三部分 网络协议163

第12章 WebSocket163

12.1 WebSocket简介163

12.2 我们的WebSocket示例应用程序164

12.3 添加WebSocket支持165

12.3.1 处理HTTP请求165

12.3.2 处理WebSocket帧168

12.3.3 初始化Channel-Pipeline169

12.3.4 引导171

12.4 测试该应用程序173

12.5 小结176

第13章 使用UDP广播事件177

13.1 UDP的基础知识177

13.2 UDP广播178

13.3 UDP示例应用程序178

13.4 消息POJO:LogEvent179

13.5 编写广播者180

13.6 编写监视器185

13.7 运行LogEvent-Broadcaster和LogEventMonitor187

13.8 小结189

第四部分 案例研究193

第14章 案例研究,第一部分193

14.1 Droplr——构建移动服务193

14.1.1 这一切的起因193

14.1.2 Droplr是怎样工作的194

14.1.3 创造一个更加快速的上传体验194

14.1.4 技术栈196

14.1.5 性能199

14.1.6 小结——站在巨人的肩膀上200

14.2 Firebase——实时的数据同步服务200

14.2.1 Firebase的架构201

14.2.2 长轮询201

14.2.3 HTTP 1.1 keep-alive和流水线化204

14.2.4 控制SslHandler205

14.2.5 Firebase小结207

14.3 Urban Airship——构建移动服务207

14.3.1 移动消息的基础知识207

14.3.2 第三方递交208

14.3.3 使用二进制协议的例子209

14.3.4 直接面向设备的递交211

14.3.5 Netty擅长管理大量的并发连接212

14.3.6 Urban Airship小结——跨越防火墙边界213

14.4 小结214

第15章 案例研究,第二部分215

15.1 Netty在Facebook的使用:Nifty和Swift215

15.1.1 什么是Thrift215

15.1.2 使用Netty改善Java Thrift的现状216

15.1.3 Nifty服务器的设计217

15.1.4 Nifty异步客户端的设计220

15.1.5 Swift:一种更快的构建Java Thrift服务的方式221

15.1.6 结果221

15.1.7 Facebook小结224

15.2 Netty在Twitter的使用:Finagle224

15.2.1 Twitter成长的烦恼224

15.2.2 Finagle的诞生224

15.2.3 Finagle是如何工作的225

15.2.4 Finagle的抽象230

15.2.5 故障管理231

15.2.6 组合服务232

15.2.7 未来:Netty232

15.2.8 Twitter小结233

15.3 小结233

附录 Maven介绍234

热门推荐