购物车中还没有商品,赶紧选购吧!
条形条码:
Netty进阶之路:跟着案例学Netty
商 城 价
降价通知
市 场 价
累计评价0
累计销量0
手机购买
商品二维码
配送
服务
天添网自营 发货并提供售后服务。
数量
库存  个
温馨提示

·不支持退换货服务

  • 商品详情
手机购买
商品二维码
加入购物车
价格:
数量:
库存  个

商品详情

商品名称:Netty进阶之路:跟着案例学Netty
商品编号:Z29714401
店铺:天添网自营
上架时间:2020-09-10 18:46:21

编辑推荐



null


内容简介



Netty将Java NIO接口封装,提供了全异步编程方式,是各大Java项目的网络应用开发必备神器。本书作者是国内Netty技术的先行者和布道者,本书是他继《Netty权威指南》之后的又一力作。在本书中,作者将在过去几年实践中遇到的问题,以及Netty学习者咨询的相关问题,进行了归纳和总结,以问题案例做牵引,通过对案例进行剖析,讲解问题背后的原理,并结合Netty源码分析,让读者能够真正掌握Netty,在实际工作中少犯错。本书中的案例涵盖了Netty的启动和停止、内存、并发多线程、性能、可靠性、安全等方面,囊括了Netty绝大多数常用的功能及容易让人犯错的地方。在案例的分析过程中,还穿插讲解了Netty的问题定位思路、方法、技巧,以及解决问题使用的相关工具,对读者在实际工作中用好Netty具有很大的帮助和启发作用。本书适合架构师、设计师、开发工程师、测试工程师,以及对Java NIO框架、Netty感兴趣的其他相关人士阅读。


作者介绍



李林锋, 10年Java NIO通信框架、平台中间件架构设计和开发经验。 目前在华为终端应用市场负责业务微服务化、云化、全球化等相关设计和开发工作。 《Netty权威指南》和《分布式服务框架原理与实践》作者。


目 录



第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 串行执行的ChannelHandler 110 7.1.2 跨链路共享的ChannelHandler 114 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.1 I/O读写操作原理和源码分析 130 8.2.2 异步任务执行原理和源码分析 133 8.2.3 定时任务执行原理和源码分析 135 …… 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 无法并行执行的EventExecutorGroup 159 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/2 219 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 Protob


媒体评论



null


对比栏

1

您还可以继续添加

2

您还可以继续添加

3

您还可以继续添加

4

您还可以继续添加