诞生于 2004 年的 Netty 是 Java 社区中第一个基于事件驱动的网络应用开发框架。

时隔17年,它经久不衰,已经是 Java 网络编程框架里的王者,没有之一。

在微服务的大潮之中, 架构师把系统拆分成了多个服务,根据需要部署在多个机器上,这些服务非常灵活,可以随着访问量弹性扩展。

图片说明
但世界上没有免费的午餐, 拆分成多个“微服务”以后虽然增加了弹性,但也带来了一个巨大的挑战:服务之间互相调用的开销。

这时候使用Netty就是绝佳的选择。

其实游戏领域是个更好的例子,长连接,自定义协议,高并发,Netty就是绝配。

因为Netty本身就是一个基于NIO的网络框架, 封装了Java NIO那些复杂的底层细节,给你提供简单好用的抽象概念来编程。

注意几个关键词,首先它是个框架,是个“半成品”,不能开箱即用,你必须得拿过来做点定制,利用它开发出自己的应用程序,然后才能运行(就像使用Spring那样)。

一个更加知名的例子就是阿里巴巴的Dubbo了,这个RPC框架的底层用的就是Netty。

另外一个关键词是高性能,如果你的应用根本没有高并发的压力,那就不一定要用Netty了。

鉴于此,为了让更多的开发人员学习好Netty,我特地分享这份公布:阿里高工手写的13万字的“Netty速成手册”。若你需要完整的pdf版,可以点击文章开头链接免费领取

第一部分:Netty的概念及体系结构
1.Netty——异步和事件驱动(Java网络编程+Netty简介+Netty的核心组件)
图片说明

2.你的第一款Netty应用程序(设置开发环境+Netty客户端/服务器概览+编写Echo服务器+编写Echo客户端+构建和运行Echo服务器和客户端)
图片说明
3.Netty的组件和设计

图片说明
4.传输(案例研究:传输迁移+传输API+内置的传输+传输的用例)
图片说明
5.ByteBuf(ByteBuf的API+ByteBuf类——Netty的数据容器+字节级操作+ByteBufHolder接口+ByteBuf分配+引用计数)
图片说明
6.ChannelHandler和ChannelPipeline(ChannelHandler家族+ChannelPipeline接口+ChannelHandlerContext接口+异常处理)
图片说明
7.EventLoop和线程模型(线程模型概述+EventLoop接口+任务调度+实现
图片说明
8.引导(Bootstrap类+引导客户端和无连接协议+引导服务器+从Channel引导客户端+在引导过程中添加多个ChannelHandler+引导DatagramChannel+关闭)
图片说明
9.单元测试(EmbeddedChannel概述+使用EmbeddedChannel测试ChannelHandler+测试异常处理)

图片说明
第二部分:编解码器
1.编解码器框架(什么是编码器?+解码器+编码器+抽象的编解码器类)
图片说明
2.预置的ChannelHandler和编解码器(通过SSL/TLS保护Netty应用程序+构建基于Netty的HTTP/HTTPS应用程序+空闲的连接和超时+解码基于分隔符的协议和基于长度的协议+写大型数据+序列化数据)

图片说明
第三部分:网络协议
1.WebSocket(WebSocket简介+我们的WebSocket示例应用程序+添加WebSocket支持+测试该应用程序)

(https://uploadfiles.nowcoder.com/images/20210727/638691209_1627383957747/A01A62C53859B3BB8023760BD233E351 "图片标题")
2.使用UDP广播事件(UDP的基础知识+UDP广播+UDP示例应用程序+消息POJO: LogEvent+编写广播者+编写监视器+运行LogEventBroadcaster和LogEventMonitor)

图片说明
第四部分:案例研究
1.案例研究(上)
图片说明
2.案例研究(下)

图片说明
为什么要学习Netty?作为开发人员,你到今天还没有找到答案吗?

学习,是为了让我们变成更好的自己。下载这本Netty速成手册,只需你转发+评论文章,关注我点击文章开头链接即可免费下载