标签
内容简介
《Netty权威指南(第2版)》是国内较早系统讲解 Netty 原理与架构的技术专著,作者李林锋长期从事高性能通信软件的架构设计与开发,也是 Netty 在国内社区的主要推广者之一。全书在第1版基础上修订,按由浅入深的顺序分为六个部分:基础篇从 Linux 网络 I/O 模型与 I/O 多路复用讲起,梳理 Java I/O 从 BIO、伪异步 I/O 到 NIO、AIO 的演进,并用时间服务器(TimeServer/TimeClient)的完整源码逐段对比四种模型的写法与瓶颈;入门篇带读者搭建开发环境,写出第一个 Netty 服务端与客户端,并专门用两章解决 TCP 粘包/拆包这一经典难题,讲解分隔符与定长解码器的使用;中级篇讨论编解码技术,以及 MessagePack、Google Protobuf、JBoss Marshalling 等主流序列化框架的集成;高级篇覆盖 HTTP、WebSocket 与自定义私有协议栈开发;源码分析篇逐个剖析 ByteBuf、Channel 与 Unsafe、ChannelPipeline 与 ChannelHandler、EventLoop 与 EventLoopGroup、Future 与 Promise 等核心类库;最后一部分从架构剖析、多线程编程应用、高性能之道、可靠性与安全性等角度总结 Netty 的工程实践,并展望其发展。全书配有大量可运行示例与流程、模型图,既可作为系统学习 Netty 的教程,也可作为开发时查阅核心 API 与约束的参考书。
编辑推荐
Netty 是 Java 生态中事实上的异步网络编程底座,Dubbo、RocketMQ、gRPC-Java、Elasticsearch 等中间件的通信层都构建在它之上。可多数人学 Netty 的方式是抄一段服务端模板代码、跑通就收工,遇到粘包、内存泄漏、连接假死时便无从下手。本书的价值正在于把“为什么”讲在前面:它不从 API 清单开始,而是先让你看清 BIO 卡在连接数、伪异步卡在阻塞、NIO 靠多路复用解放线程,再顺理成章地引出 Netty 的设计取舍。全书最见功力的部分是源码分析篇——ByteBuf 的引用计数与内存池、Pipeline 的责任链传播、EventLoop 的线程绑定,这些平时只能靠啃源码和社区博客拼凑的知识点,被整理成了有顺序、有图解的章节。私有协议栈一章从数据结构定义写到握手、心跳、断连重连,是少见的“能上线”级别的完整案例。需要提醒的是,本书基于 Netty 5.0 编写,而 Netty 5 已被官方放弃、主干回到 4.x,部分 API 与现在常用的 4.1 系列存在差异;另外书中对若干源码细节的解读在社区中也有过争议。即便如此,作为理解 Java 网络编程演进与 Netty 整体架构的中文读物,它依然值得放在手边,配合 4.x 官方文档一起读效果最好。
适合谁读
适合
- 已掌握 Java 基础、想系统理解 NIO 与异步网络编程的中高级后端工程师
- 正在做网关、RPC、消息中间件等通信层开发的研发人员
- 需要排查粘包拆包、内存泄漏、连接保活等线上问题的一线开发者
- 希望从架构层面理解 Netty 线程模型与责任链设计的技术负责人
- 计算机专业高年级学生或研究生,用于课程项目中的网络模块设计
不适合
- 完全没有 Java 基础、也未接触过多线程与 Socket 编程的初学者
- 只想快速复制一段可用服务端代码、不打算理解原理的读者
- 以 Go、Rust、Python 等非 JVM 语言为主要技术栈的开发者
阅读建议
- 第一遍走主线:第1、2章打底,第3~5章动手写例子,第6~8章学编解码,第12章读私有协议栈,先把“能做什么”建立起来。
- 源码分析篇(第15~19章)不要通读,遇到具体问题再按类名定位,边读边对照 Netty 4.x 官方源码。
- 书中的 TimeServer 等示例建议亲手敲一遍,并刻意制造粘包与断连场景,观察现象与书中分析的对应关系。
- 注意版本差异:本书基于 Netty 5.0,实际开发请以 4.1.x 为准,遇到 API 不一致时以官方 Javadoc 为最终依据。
出版社简介
电子工业出版社
中国 · 成立于 1982 年
电子工业出版社是一家以电子信息及相关领域为出版特色的综合性出版社。从库内三千余种图书来看,其出版方向覆盖编程设计、人工智能、计算机综合、财经、摄影与社科等门类,既关注技术前沿,也兼顾大众阅读。代表图书包括《因子投资:方法与实践》《x86汇编语言:从实模式到保护模式》《RISC-V开放架构设计之道》《人工智能:语音识别理解与实践》《相控阵雷达技术》《雷达目标特性》及《100个Go语言典型错误》等,多围绕技术方法与工程实践展开。作者资源方面,有石川、李忠、王晓波、大卫·帕特森、安德鲁·沃特曼、余子濠等中外作者。受公开资料所限,暂不展开更多出版特色。
目录
- 基础篇 走进 Java NIO:第1章 Java 的 I/O 演进之路
- 第2章 NIO 入门(BIO、伪异步 I/O、NIO、AIO 与四种 I/O 对比)
- 入门篇 Netty NIO 开发指南:第3章 Netty 入门应用
- 第4章 TCP 粘包/拆包问题的解决之道
- 第5章 分隔符和定长解码器的应用
- 中级篇 Netty 编解码开发指南:第6章 编解码技术
- 第7章 MessagePack 编解码
- 第8章 Google Protobuf 编解码
- 第9章 JBoss Marshalling 编解码
- 高级篇 Netty 多协议开发和应用:第10章 HTTP 协议开发应用
- 第11章 WebSocket 协议开发
- 第12章 私有协议栈开发
- 第13章 服务端创建
- 第14章 客户端创建
- 源码分析篇:第15章 ByteBuf 和相关辅助类
- 第16章 Channel 和 Unsafe
- 第17章 ChannelPipeline 和 ChannelHandler
- 第18章 EventLoop 和 EventLoopGroup
- 第19章 Future 和 Promise
- 架构和行业应用篇:第20章 Netty 架构剖析
- 第21章 Java 多线程编程在 Netty 中的应用
- 第22章 高性能之道
- 第23章 可靠性
- 第24章 安全性
- 第25章 Netty 未来展望
- 附录A Netty 参数配置表
常见问题
这本书讲的是 Netty 5,现在还能用吗?
书中的示例基于已停止开发的 Netty 5.0,直接照抄可能在 4.1.x 上报错。但 I/O 演进、粘包拆包解法、编解码框架、Pipeline 与 EventLoop 的设计思想在各版本间基本一致,原理部分依然适用,动手时把 API 换成 4.1.x 即可。
零基础学 Java 网络编程可以直接读吗?
不太建议。书中默认读者熟悉 Java 多线程、Socket 与基本设计模式,第1、2章的源码分析节奏较快。建议先补 Java 并发基础与《Java NIO》前几章,再来读本书的入门篇会顺畅很多。
书里的目录和章节为什么和我手上版本对不上?
本书有 2014 年第1版(524页,ISBN 9787121233432)与 2015 年第2版(572页,ISBN 9787121258015)。第2版扩充了章节并调整了部分编号,购买或对照目录时请先确认版权页的版次。
和《Netty实战》《Netty进阶之路》相比该怎么选?
《Netty实战》偏重上手与用法,《Netty进阶之路》以案例排查为主,本书的独特之处在于源码分析与架构剖析的系统性。若目标是理解内部机制,本书更合适;若只想尽快把项目跑起来,可先从实战类书入手。
读完这本书大概能到什么水平?
能独立用 Netty 搭建服务端与客户端、处理粘包与编解码、实现带心跳与重连的私有协议,并读懂 ByteBuf、Pipeline 等核心类的源码逻辑。要达到生产级性能调优与故障定位,还需要结合真实项目与压测实践。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。
作者简介
李林锋
作者
李林锋是一位计算机技术类图书作者,公开资料有限,目前可确认的作品有两部,均围绕软件开发与工程实践展开。其中《Netty进阶之路:跟着案例学Netty》以案例驱动的方式讲解Netty框架的使用与进阶知识,体现出作者注重从实际场景出发、以问题带动学习的写作思路;《华为Serverless核心技术与实践》则聚焦Serverless这一云计算技术方向,结合企业级实践展开论述。两部作品分别归入计算机综合与编程设计类别,读者对象多为具备一定基础的开发者与技术人员。从现有信息看,李林锋的写作偏重技术细节与工程落地,善于借助具体案例组织内容,适合希望深入理解相关框架与云原生技术的读者参考。