前言
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.