展开全部

主编推荐语

《Netty实战:案例解析与优化》涵盖启停、内存、并发等方面,助读者掌握Netty应用开发。

内容简介

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

目录

  • 封面
  • 版权页
  • 序1
  • 序2
  • 前言
  • 第1章 Netty服务端意外退出案例
  • 1.1 Netty服务端意外退出问题
  • 1.1.1 Java Daemon线程简介
  • 1.1.2 Netty服务端启动原理
  • 1.1.3 如何防止Netty服务端意外退出
  • 1.1.4 实际项目中的优化策略
  • 1.2 Netty优雅退出机制
  • 1.2.1 Java优雅退出机制
  • 1.2.2 Java优雅退出的注意点
  • 1.2.3 Netty优雅退出机制
  • 1.2.4 Netty优雅退出原理和源码分析
  • 1.2.5 Netty优雅退出的一些误区
  • 1.3 总结
  • 第2章 Netty客户端连接池资源泄漏案例
  • 2.1 Netty连接池资源泄漏问题
  • 2.1.1 连接池创建代码
  • 2.1.2 内存溢出和线程膨胀
  • 2.1.3 错用NIO编程模式
  • 2.1.4 正确的连接池创建方式
  • 2.1.5 并发安全和资源释放
  • 2.2 Netty客户端创建机制
  • 2.2.1 Java NIO客户端创建原理分析
  • 2.2.2 Netty客户端创建原理分析
  • 2.2.3 Bootstrap工具类源码分析
  • 2.3 总结
  • 第3章 Netty内存池泄漏疑云案例
  • 3.1 Netty内存池泄漏问题
  • 3.1.1 路由转发服务代码
  • 3.1.2 响应消息内存释放玄机
  • 3.1.3 采集堆内存快照分析
  • 3.1.4 ByteBuf申请和释放的理解误区
  • 3.2 Netty内存池工作机制
  • 3.2.1 内存池的性能优势
  • 3.2.2 内存池工作原理分析
  • 3.2.3 内存池核心代码分析
  • 3.3 总结
  • 第4章 ByteBuf故障排查案例
  • 4.1 HTTP协议栈ByteBuf使用问题
  • 4.1.1 HTTP响应Body获取异常
  • 4.1.2 ByteBuf非法引用问题
  • 4.1.3 ByteBuf使用注意事项
  • 4.2 Netty ByteBuf实现机制
  • 4.2.1 Java原生ByteBuffer的局限性
  • 4.2.2 Netty ByteBuf工作原理分析
  • 4.2.3 ByteBuf引用计数器工作原理和源码分析
  • 4.3 总结
  • 第5章 Netty发送队列积压导致内存泄漏案例
  • 5.1 Netty发送队列积压案例
  • 5.1.1 高并发故障场景
  • 5.1.2 内存泄漏原因分析
  • 5.1.3 如何防止发送队列积压
  • 5.1.4 其他可能导致发送队列积压的因素
  • 5.2 Netty消息发送工作机制
  • 5.2.1 WriteAndFlushTask原理和源码分析
  • 5.2.2 ChannelOutboundBuffer原理和源码分析
  • 5.2.3 消息发送源码分析
  • 5.2.4 消息发送高低水位控制
  • 5.3 总结
  • 第6章 API网关高并发压测性能波动案例
  • 6.1 高并发压测性能波动问题
  • 6.1.1 故障场景模拟
  • 6.1.2 性能波动原因定位
  • 6.1.3 主动内存泄漏定位法
  • 6.1.4 网关类产品的优化建议
  • 6.2 Netty消息接入内存申请机制
  • 6.2.1 消息接入的内存分配原理和源码分析
  • 6.2.2 Netty ByteBuf的动态扩容原理和源码分析
  • 6.3 总结
  • 第7章 Netty ChannelHandler并发安全案例
  • 7.1 Netty ChannelHandler并发安全问题
  • 7.1.1 串行执行的ChannelHandler
  • 7.1.2 跨链路共享的ChannelHandler
  • 7.1.3 ChannelHandler的并发陷阱
  • 7.2 Netty ChannelHandler工作机制
  • 7.2.1 职责链ChannelPipeline原理和源码分析
  • 7.2.2 用户自定义Event原理和源码分析
  • 7.3 总结
  • 第8章 车联网服务端接收不到车载终端消息案例
  • 8.1 车联网服务端接收不到车载终端消息问题
  • 8.1.1 故障现象
  • 8.1.2 故障期线程堆栈快照分析
  • 8.1.3 NioEventLoop线程防挂死策略
  • 8.2 NioEventLoop线程工作机制
  • 8.2.1 I/O读写操作原理和源码分析
  • 8.2.2 异步任务执行原理和源码分析
  • 8.2.3 定时任务执行原理和源码分析
  • 8.2.4 Netty多线程最佳实践
  • 8.3 总结
  • 第9章 Netty 3.X版本升级案例
  • 9.1 Netty 3.X的版本升级背景
  • 9.1.1 被迫升级场景
  • 9.1.2 升级不当遭遇各种问题
  • 9.2 版本升级后数据被篡改问题
  • 9.2.1 数据篡改原因分析
  • 9.2.2 问题总结
  • 9.3 升级后上下文丢失问题
  • 9.3.1 上下文丢失原因分析
  • 9.3.2 依赖第三方线程模型的思考
  • 9.4 升级后应用遭遇性能下降问题
  • 9.4.1 性能下降原因分析
  • 9.4.2 性能优化建议
  • 9.5 Netty线程模型变更分析
  • 9.5.1 Netty 3.X版本线程模型
  • 9.5.2 Netty 4.X版本线程模型
  • 9.5.3 线程模型变化点源码分析
  • 9.5.4 线程模型变化总结
  • 9.6 总结
  • 第10章 Netty并发失效导致性能下降案例
  • 10.1 业务ChannelHandler无法并发执行问题
  • 10.1.1 服务端并发设计相关代码分析
  • 10.1.2 无法并行执行的EventExecutorGroup
  • 10.1.3 并行执行优化策略和结果
  • 10.2 Netty DefaultEventExecutor工作机制
  • 10.2.1 DefaultEventExecutor原理和源码分析
  • 10.2.2 业务线程池优化策略
  • 10.2.3 Netty线程绑定机制原理和源码分析
  • 10.3 总结
  • 第11章 IoT百万长连接性能调优案例
  • 11.1 海量长连接接入面临的挑战
  • 11.1.1 IoT设备接入特点
  • 11.1.2 IoT服务端性能优化场景
  • 11.1.3 服务端面临的性能挑战
  • 11.2 智能家居内存泄漏问题
  • 11.2.1 服务端内存泄漏原因定位
  • 11.2.2 问题背后的一些思考
  • 11.3 操作系统参数调优
  • 11.3.1 文件描述符
  • 11.3.2 TCP/IP相关参数
  • 11.3.3 多网卡队列和软中断
  • 11.4 Netty性能调优
  • 11.4.1 设置合理的线程数
  • 11.4.2 心跳优化
  • 11.4.3 接收和发送缓冲区调优
  • 11.4.4 合理使用内存池
  • 11.4.5 防止I/O线程被意外阻塞
  • 11.4.6 I/O线程和业务线程分离
  • 11.4.7 针对端侧并发连接数的流控
  • 11.5 JVM相关性能优化
  • 11.5.1 GC调优
  • 11.5.2 其他优化手段
  • 11.6 总结
  • 第12章 静态检查修改不当引起性能下降案例
  • 12.1 Edge Ser vice性能严重下降问题
  • 12.1.1 Edge Service热点代码分析
  • 12.1.2 静态检查问题不是简单的一改了之
  • 12.1.3 问题反思和改进
  • 12.2 克隆和浅拷贝
  • 12.2.1 浅拷贝存在的问题
  • 12.2.2 Netty的对象拷贝实现策略
  • 12.3 总结
  • 第13章 Netty性能统计误区案例
  • 13.1 时延毛刺排查相关问题
  • 13.1.1 时延毛刺问题初步分析
  • 13.1.2 服务调用链改进
  • 13.1.3 都是同步思维惹的祸
  • 13.1.4 正确的消息发送速度性能统计策略
  • 13.1.5 常见的消息发送性能统计误区
  • 13.2 Netty关键性能指标采集策略
  • 13.2.1 Netty I/O线程池性能指标
  • 13.2.2 Netty发送队列积压消息数
  • 13.2.3 Netty消息读取速度性能统计
  • 13.3 总结
  • 第14章 gRPC的Netty HTTP/2实践案例
  • 14.1 gRPC基础入门
  • 14.1.1 RPC框架简介
  • 14.1.2 当前主流的RPC框架
  • 14.1.3 gRPC框架特点
  • 14.1.4 为什么选择HTTP/2
  • 14.2 gRPC Netty HTTP/2服务端工作机制
  • 14.2.1 Netty HTTP/2服务端创建原理和源码分析
  • 14.2.2 服务端接收HTTP/2请求消息原理和源码分析
  • 14.2.3 服务端发送HTTP/2 响应消息原理和源码分析
  • 14.3 gRPC Netty HTTP/2客户端工作机制
  • 14.3.1 Netty HTTP/2客户端创建原理和源码分析
  • 14.3.2 客户端发送HTTP/2请求消息原理和源码分析
  • 14.3.3 客户端接收HTTP/2响应消息原理和源码分析
  • 14.4 gRPC消息序列化机制
  • 14.4.1 Google Protobuf简介
  • 14.4.2 消息的序列化原理和源码分析
  • 14.4.3 消息的反序列化原理和源码分析
  • 14.5 gRPC线程模型
  • 14.5.1 服务端线程模型
  • 14.5.2 客户端线程模型
  • 14.5.3 线程模型总结
  • 14.6 总结
  • 第15章 Netty事件触发策略使用不当案例
  • 15.1 channelReadComplete方法被调用多次问题
  • 15.1.1 ChannelHandler调用问题
  • 15.1.2 生产环境问题模拟重现
  • 15.2 ChannelHandler使用的一些误区总结
  • 15.2.1 channelReadComplete方法调用
  • 15.2.2 ChannelHandler职责链调用
  • 15.3 总结
  • 第16章 Netty流量整形应用案例
  • 16.1 Netty流量整形功能
  • 16.1.1 通用的流量整形功能简介
  • 16.1.2 Netty流量整形功能简介
  • 16.2 Netty流量整形应用
  • 16.2.1 流量整形示例代码
  • 16.2.2 流量整形功能测试
  • 16.3 Netty流量整形工作机制
  • 16.3.1 流量整形工作原理和源码分析
  • 16.3.2 并发编程在流量整形中的应用
  • 16.3.3 使用流量整形的一些注意事项总结
  • 16.4 总结
  • 第17章 Netty SSL应用案例
  • 17.1 Netty SSL功能简介
  • 17.1.1 SSL安全特性
  • 17.1.2 Netty SSL实现机制
  • 17.2 Netty客户端SSL握手超时问题
  • 17.2.1 握手超时原因定位
  • 17.2.2 Netty SSL握手问题定位技巧
  • 17.3 SSL握手性能问题
  • 17.3.1 SSL握手性能热点分析
  • 17.3.2 缓存和对象池
  • 17.4 SSL事件监听机制
  • 17.4.1 握手成功事件
  • 17.4.2 SSL连接关闭事件
  • 17.5 总结
  • 第18章 Netty HTTPS服务端高并发宕机案例
  • 18.1 Netty HTTPS服务端宕机问题
  • 18.1.1 客户端大量超时
  • 18.1.2 服务端内存泄漏原因分析
  • 18.1.3 NioSocketChannel泄漏原因探究
  • 18.1.4 高并发场景下缺失的可靠性保护
  • 18.2 功能层面的可靠性优化
  • 18.2.1 Netty HTTPS服务端可靠性优化
  • 18.2.2 HTTPS客户端优化
  • 18.3 架构层面的可靠性优化
  • 18.3.1 端到端架构问题剖析
  • 18.3.2 HTTP Client切换到NIO
  • 18.3.3 同步RPC调用切换到异步调用
  • 18.3.4 协议升级到HTTP/2
  • 18.4 总结
  • 第19章 MQTT服务接入超时案例
  • 19.1 MQTT服务接入超时问题
  • 19.1.1 生产环境问题现象
  • 19.1.2 连接数膨胀原因分析
  • 19.1.3 无效连接的关闭策略
  • 19.1.4 问题总结
  • 19.2 基于Netty的可靠性设计
  • 19.2.1 业务定制I/O异常
  • 19.2.2 链路的有效性检测
  • 19.2.3 内存保护
  • 19.3 总结
  • 第20章 Netty实践总结
  • 20.1 Netty学习策略
  • 20.1.1 入门知识准备
  • 20.1.2 Netty入门学习
  • 20.1.3 项目实践
  • 20.1.4 Netty源码阅读策略
  • 20.2 Netty故障定位技巧
  • 20.2.1 接收不到消息
  • 20.2.2 内存泄漏
  • 20.2.3 性能问题
  • 20.3 总结
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

电子工业出版社

电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。