图书介绍
Netty进阶之路 跟着案例学NettyPDF|Epub|txt|kindle电子书版本网盘下载
![Netty进阶之路 跟着案例学Netty](https://www.shukui.net/cover/21/31317072.jpg)
- 李林锋著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121352621
- 出版时间:2019
- 标注页数:322页
- 文件大小:65MB
- 文件页数:342页
- 主题词:JAVA语言-程序设计
PDF下载
下载说明
Netty进阶之路 跟着案例学NettyPDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 Netty服务端意外退出案例1
1.1 Netty服务端意外退出问题1
1.1.1 Java Daemon线程简介2
1.1.2 Netty服务端启动原理4
1.1.3如何防止Netty服务端意外退出6
1.1.4实际项目中的优化策略8
1.2 Netty优雅退出机制9
1.2.1 Java优雅退出机制10
1.2.2 Java优雅退出的注意点12
1.2.3 Netty优雅退出机制14
1.2.4 Netty优雅退出原理和源码分析15
1.2.5 Netty优雅退出的一些误区20
1.3总结21
第2章 Netty客户端连接池资源泄漏案例22
2.1 Netty连接池资源泄漏问题22
2.1.1连接池创建代码23
2.1.2内存溢出和线程膨胀23
2.1.3错用NIO编程模式25
2.1.4正确的连接池创建方式26
2.1.5并发安全和资源释放28
2.2 Netty客户端创建机制29
2.2.1 Java NIO客户端创建原理分析29
2.2.2 Netty客户端创建原理分析32
2.2.3 Bootstrap工具类源码分析34
2.3总结36
第3章 Netty内存池泄漏疑云案例37
3.1 Netty内存池泄漏问题37
3.1.1路由转发服务代码38
3.1.2响应消息内存释放玄机39
3.1.3采集堆内存快照分析42
3.1.4 ByteBuf申请和释放的理解误区45
3.2 Netty内存池工作机制48
3.2.1内存池的性能优势48
3.2.2内存池工作原理分析51
3.2.3内存池核心代码分析54
3.3总结58
第4章 ByteBuf故障排查案例59
4.1 HTTP协议栈ByteBuf使用问题59
4.1.1 HTTP响应Body获取异常59
4.1.2 ByteBuf非法引用问题63
4.1.3 ByteBuf使用注意事项66
4.2 Netty ByteBuf实现机制67
4.2.1 Java原生ByteBuffer的局限性67
4.2.2 Netty ByteBuf工作原理分析67
4.2.3 ByteBuf引用计数器工作原理和源码分析70
4.3总结73
第5章 Netty发送队列积压导致内存泄漏案例74
5.1 Netty发送队列积压案例74
5.1.1高并发故障场景74
5.1.2内存泄漏原因分析76
5.1.3如何防止发送队列积压78
5.1.4其他可能导致发送队列积压的因素80
5.2 Netty消息发送工作机制82
5.2.1 WriteAndFlushTask原理和源码分析83
5.2.2 ChannelOutboundBuffer原理和源码分析86
5.2.3消息发送源码分析88
5.2.4消息发送高低水位控制94
5.3总结95
第6章 API网关高并发压测性能波动案例96
6.1高并发压测性能波动问题96
6.1.1故障场景模拟96
6.1.2性能波动原因定位98
6.1.3主动内存泄漏定位法101
6.1.4网关类产品的优化建议102
6.2 Netty消息接入内存申请机制102
6.2.1消息接入的内存分配原理和源码分析102
6.2.2 Netty ByteBuf的动态扩容原理和源码分析107
6.3总结108
第7章 Netty ChannelHandler并发安全案例109
7.1 Netty ChannelHandler并发安全问题109
7.1.1串行执行的ChannelHandler110
7.1.2跨链路共享的ChannelHandler114
7.1.3 ChannelHandler的并发陷阱116
7.2 Netty ChannelHandler工作机制118
7.2.1职责链ChannelPipeline原理和源码分析118
7.2.2用户自定义Event原理和源码分析122
7.3总结123
第8章 车联网服务端接收不到车载终端消息案例124
8.1车联网服务端接收不到车载终端消息问题124
8.1.1故障现象125
8.1.2故障期线程堆栈快照分析126
8.1.3 NioEventLoop线程防挂死策略128
8.2 NioEventLoop线程工作机制129
8.2.11/O读写操作原理和源码分析130
8.2.2异步任务执行原理和源码分析133
8.2.3定时任务执行原理和源码分析135
8.2.4 Netty多线程最佳实践137
8.3总结137
第9章 Netty 3.X版本升级案例139
9.1 Netty 3.X的版本升级背景139
9.1.1被迫升级场景140
9.1.2升级不当遭遇各种问题140
9.2版本升级后数据被篡改问题141
9.2.1数据篡改原因分析142
9.2.2问题总结143
9.3升级后上下文丢失问题143
9.3.1上下文丢失原因分析144
9.3.2依赖第三方线程模型的思考144
9.4升级后应用遭遇性能下降问题145
9.4.1性能下降原因分析145
9.4.2性能优化建议146
9.5 Netty线程模型变更分析147
9.5.1 Netty 3.X版本线程模型147
9.5.2 Netty 4.X版本线程模型149
9.5.3线程模型变化点源码分析150
9.5.4线程模型变化总结152
9.6总结154
第10章 Netty并发失效导致性能下降案例155
10.1业务ChannelHandler无法并发执行问题155
10.1.1服务端并发设计相关代码分析155
10.1.2无法并行执行的EventExecutorGroup159
10.1.3并行执行优化策略和结果161
10.2 Netty DefaultEventExecutor工作机制163
10.2.1 DefaultEventExecutor原理和源码分析164
10.2.2业务线程池优化策略165
10.2.3 Netty线程绑定机制原理和源码分析168
10.3总结170
第11章 IoT百万长连接性能调优案例171
11.1海量长连接接入面临的挑战171
11.1.1 IoT设备接入特点172
11.1.2 IoT服务端性能优化场景172
11.1.3服务端面临的性能挑战172
11.2智能家居内存泄漏问题173
11.2.1服务端内存泄漏原因定位173
11.2.2问题背后的一些思考174
11.3操作系统参数调优174
11.3.1文件描述符175
11.3.2 TCP/IP相关参数175
11.3.3多网卡队列和软中断177
11.4 Netty性能调优177
11.4.1设置合理的线程数177
11.4.2心跳优化180
11.4.3接收和发送缓冲区调优183
11.4.4合理使用内存池184
11.4.5防止I/O线程被意外阻塞185
11.4.6 I/O线程和业务线程分离187
11.4.7针对端侧并发连接数的流控187
11.5 JVM相关性能优化189
11.5.1 GC调优189
11.5.2其他优化手段193
11.6总结193
第12章 静态检查修改不当引起性能下降案例195
12.1 Edge Service性能严重下降问题195
12.1.1 Edge Service热点代码分析195
12.1.2静态检查问题不是简单的一改了之197
12.1.3问题反思和改进200
12.2克隆和浅拷贝201
12.2.1浅拷贝存在的问题201
12.2.2 Netty的对象拷贝实现策略203
12.3总结204
第13章 Netty性能统计误区案例205
13.1时延毛刺排查相关问题205
13.1.1时延毛刺问题初步分析205
13.1.2服务调用链改进207
13.1.3都是同步思维惹的祸208
13.1.4正确的消息发送速度性能统计策略209
13.1.5常见的消息发送性能统计误区212
13.2 Netty关键性能指标采集策略212
13.2.1 Netty I/O线程池性能指标213
13.2.2 Netty发送队列积压消息数214
13.2.3 Netty消息读取速度性能统计215
13.3总结215
第14章 gRPC的Netty HTTP/2实践案例216
14.1 gRPC基础入门216
14.1.1 RPC框架简介216
14.1.2当前主流的RPC框架218
14.1.3 gRPC框架特点218
14.1.4为什么选择HTTP/2219
14.2 gRPC Netty HTTP/2服务端工作机制220
14.2.1 Netty HTTP/2服务端创建原理和源码分析220
14.2.2服务端接收HTTP/2请求消息原理和源码分析224
14.2.3服务端发送HTTP/2响应消息原理和源码分析231
14.3 gRPC Netty HTTP/2客户端工作机制234
14.3.1 Netty HTTP/2客户端创建原理和源码分析235
14.3.2客户端发送HTTP/2请求消息原理和源码分析238
14.3.3客户端接收HTTP/2响应消息原理和源码分析242
14.4 gRPC消息序列化机制243
14.4.1 Google Protobuf 简介243
14.4.2消息的序列化原理和源码分析244
14.4.3消息的反序列化原理和源码分析245
14.5 gRPC线程模型246
14.5.1服务端线程模型246
14.5.2客户端线程模型247
14.5.3线程模型总结248
14.6总结249
第15章 Netty事件触发策略使用不当案例250
15.1 channel ReadComplete方法被调用多次问题250
15.1.1 ChannelHandler调用问题250
15.1.2生产环境问题模拟重现252
15.2 ChannelHandler使用的一些误区总结255
15.2.1 channelReadComplete方法调用255
15.2.2 ChannelHandler职责链调用257
15.3总结258
第16章 Netty流量整形应用案例259
16.1 Netty流量整形功能259
16.1.1通用的流量整形功能简介260
16.1.2 Netty流量整形功能简介260
16.2 Netty流量整形应用261
16.2.1流量整形示例代码261
16.2.2流量整形功能测试263
16.3 Netty流量整形工作机制264
16.3.1流量整形工作原理和源码分析264
16.3.2并发编程在流量整形中的应用271
16.3.3使用流量整形的一些注意事项总结274
16.4总结278
第17章 Netty SSL应用案例279
17.1 Netty SSL功能简介279
17.1.1 SSL安全特性280
17.1.2 Netty SSL实现机制281
17.2 Netty客户端SSL握手超时问题282
17.2.1握手超时原因定位282
17.2.2 Netty SSL握手问题定位技巧283
17.3 SSL握手性能问题284
17.3.1 SSL握手性能热点分析284
17.3.2缓存和对象池285
17.4 SSL事件监听机制286
17.4.1握手成功事件286
17.4.2 SSL连接关闭事件286
17.5总结287
第18章 Netty HTTPS服务端高并发宕机案例288
18.1 Netty HTTPS服务端宕机问题288
18.1.1客户端大量超时288
18.1.2服务端内存泄漏原因分析289
18.1.3 NioSocketChannel泄漏原因探究290
18.1.4高并发场景下缺失的可靠性保护292
18.2功能层面的可靠性优化294
18.2.1 Netty HTTPS服务端可靠性优化295
18.2.2 HTTPS客户端优化296
18.3架构层面的可靠性优化297
18.3.1端到端架构问题剖析297
18.3.2 HTTP Client切换到NIO298
18.3.3同步RPC调用切换到异步调用299
18.3.4协议升级到HTTP/2303
18.4总结307
第19章 MQTT服务接入超时案例308
19.1 MQTT服务接入超时问题308
19.1.1生产环境问题现象308
19.1.2连接数膨胀原因分析309
19.1.3无效连接的关闭策略309
19.1.4问题总结310
19.2基于Netty的可靠性设计311
19.2.1业务定制I/O异常311
19.2.2链路的有效性检测312
19.2.3内存保护313
19.3总结315
第20章 Netty实践总结316
20.1 Netty学习策略316
20.1.1入门知识准备316
20.1.2 Netty入门学习319
20.1.3项目实践319
20.1.4 Netty源码阅读策略319
20.2 Netty故障定位技巧320
20.2.1接收不到消息320
20.2.2内存泄漏321
20.2.3性能问题322
20.3总结322