前言
Netty作为目前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,知名的Elasticsearch 、Dubbo 框架内部都采用了Netty。随着互联网对各行各业的渗透,我们可以看到一些计算机领域的热门技术,例如云计算、微服务、物联网等,其背后的核心一直是连接。在这样一个背景下,掌握Netty可以算得上是一个开发人员最重要的技能。但很多人在对Netty的学习上一直没有一个系统的概念,不知道该怎么学,为什么要学。市面上关于Netty的学习资料其实也是很少的。 今天要与大家介绍的阿里内部Netty进阶手册(2份Netty文档+一个Netty实战项目+面试专题)。是完全可以带大家彻底的玩转Netty,无论你是小白还是用过Netty的开发人员,相信都可以在这篇文章中收益。
第一份文档
由于篇幅限制只把主要内容展示出来,第一份文档注重的是Netty的概念。就不做过多的篇幅展示的了,我把主要篇幅用来展示实践文档与项目。
- 第1章Java的I/O演进之路
 - 第2章NIO入门
 
入门篇Netty NIO开发指南
- 第3章Netty入门应用
 - 第4章TCP粘包/拆包问题的解决之道
 - 第5章分隔符和定长解码器的应用
 
中级篇Netty编解码开发指南
- 第6章编解码技术
 - 第7章Java序列化
 - 第8章Google Protobuf编解码
 - 第9章JBoss Marshalling编解码
 
高级篇Netty多协议开发和应用
- 第10章HTTP协议开发应用
 - 第11章WebSocket协议开发
 - 第12章UDP协议开发
 - 第13章文件传输
 - 第14章私有协议栈开发
 
源码分析篇Netty功能介绍和源码分析
- 第15章ByteBuf和相关辅助类
 - 第16章Channel和Unsafe
 - 第17章ChannelPipeline和ChannelHandler
 - 第18章EventL oop和EventLoopGroup
 - 第19章Future和Promise
 
架构和行业应用篇Netty高级特性
- 第20章Java多线程编程在Netty中的应用
 - 第21章Netty架构剖析
 - 第22章Netty行业应用
 - 第23章Netty未来展望
 
附录A Netty参数配置表
第二份文档
在看完学习完理论知识后,很多人想直接在实际项目中使用,但是真正跟具体项目结合在一起解决实际问题时,又感觉比较棘手,不知道自己使用的方式是否是最优的,希望能够多学一些案例实践方面的知识,以便更好地在业务中使用Netty。那么下面这份文档肯定能帮到你。
第1章Netty服务端意外退出案例
- Netty服务端意外退出问题
 - Netty优雅退出机制
 
第2章Netty客户端连接池资源泄漏案例
- Netty连接池资源泄漏问题
 - Netty客户端创建机制
 
第3章Netty内存池泄漏疑云案例
- Netty内存池泄漏问题
 - Netty内存池工作机制
 
第4章ByteBuf故障排查案例
- HTTP协议栈ByteBuf使用问题
 - Netty ByteBuf实现机制
 
第5章Netty发送队列积压导致内存泄漏案例
- Netty发送队列积压案例
 - Netty消息发送工作机制
 
第6章API网关高并发压测性能波动案例
- 高并发压测性能波动问题
 - Netty消息接入内存申请机制
 
第7章Netty ChannelHandler并发安全案例
- Netty ChannelHandler并发安全问题
 - Netty ChannelHandler工作机制
 
第8章车联网服务端接收不到车载终端消息案例
- 车联网服务端接收不到车载终端消息问题
 - NioEventLoop线程工作机制
 
第9章Netty 3.X版本升级案例
- Netty 3.X的版本升级背景
 - 版本升级后数据被复改问题
 - 升级后上下文丢失问题
 - 升级后应用遭遇性能下降问题
 - Netty线程模型变更分析
 
第10章Netty并发失效导致性能下降案例
- 业务ChannelHandler无法并发执行问题
 - Netty DefaultEventExecutor工作机制
 
第11章loT百万长连接性能调优案例
- 海量长连接接入面临的挑战
 - 智能家居内存泄漏问题
 - 操作系统参数调优
 - Netty性能调优
 - JVM相关性能优化
 
第12章静态检查修改不当引起性能下降案例
- Edge Service性能严重下降问题
 - 克隆和浅拷贝
 
第13章Netty性能统计误区案例
- 时延毛刺排查相关问题
 
第14章gRPC的Netty HTTP/2实践案例
- gRPC基础入门
 - gRPC Netty HTTP/2服务端工作机制
 - gRPC Netty HTTP/2客户端工作机制
 - gRPC消息序列化机制
 - gRPC线程模型
 
第15章Netty事件触发策略使用不当案例
- channelReadComplete方法被调用多次问题
 - ChannelHandler使用的一些误区总结
 
第16章Netty流量整形应用案例
- Netty流量整形功能
 - Netty流量整形应用
 - Netty流量整形工作机制
 
第17章Netty SSL应用案例
- Netty SSL功能简介
 - Netty客户端SSL握手超时问题
 - SSL握手性能问题
 - SSL事件监听机制
 
第18章Netty HTTPS服务端高并发宕机案例
- Netty HTTPS服务端宕机问题
 - 功能层面的可靠性优化
 - 架构层面的可靠性优化
 
第19章MQTT服务接入超时案例
- MQTT服务接入超时问题
 - 基于Netty的可靠性设计
 
第20章Netty实践总结
- Netty学习策略
 - Netty故障定位技巧
 
落地项目
该游戏是一款欧美卡通风格的MMORPG游戏,目前正在研发中,2020年准备发布在Google Play上,进军欧美市场。该游戏技术框架基于国内知名网页游戏《回到三国志》,《回到三国志》上线腾讯应用中心, 并创下每个月2000万流水的骄人战绩。
- 1.BIO、NIO 和 AIO 的区别?
 - 2.NIO 的组成?
 - 3.Netty 的特点?
 - 4.Netty 的线程模型?
 - 5.TCP 粘包/拆包的原因及解决方法?
 - 6.了解哪几种序列化协议?
 - 7.如何选择序列化协议?
 - 8.Netty 的零拷贝实现?
 - 9.Netty 的高性能表现在哪些方面?
 - 10.NIOEventLoopGroup 源码?
 
写在最后
Netty的特点就是入门相对容易,但是真正掌握并精通是非常困难的,主要有以下几个原因:
- 涉及的知识面比较广
 - 调试比较困难
 - 类继承层次比较深,有些代码很晦涩(例如内存池)
 - 代码规模庞大
 - 资料零散,缺乏与实践相关的案例
 
上面这套阿里内部Netty进阶手册就是以问题案例做牵引,通过对案例进行剖析,讲解问题背后的原理,并结合Netty源码分析,让大家能够真正掌握Netty,在实际工作中少犯错。在案例的分析过程中,还穿插讲解了Netty 的问题定位思路、方法、技巧,以及解决问题使用的相关工具,“授人以鱼不如授人以渔”,只有掌握了这些才能在项目中更放心地使用Netty.
如果有朋友在学习Netty上遇到很多问题,不知道怎么解决,那么这套Netty进阶手册一定能给你很大帮助。



京公网安备 11010502036488号