前言

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故障定位技巧

部分内容:

 

 

 

需要资料的朋友只需要评论+转发,关注我后私信【666】即可免费获取!

落地项目

该游戏是一款欧美卡通风格的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进阶手册一定能给你很大帮助,需要的朋友只需要帮忙点赞文章,关注我添加小助理vx:bjmsb2020 即可免费获取!