阿里大牛总结的Netty手册,面试再也不怕被问Netty了,奥利给

2022-10-28 16:35:19 浏览数 (1)

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

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

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

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

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

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

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

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

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

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

鉴于此,为了让更多的开发人员学习好Netty,我特地分享这份公布:阿里高工手写的13万字的“Netty速成手册”。若你需要完整的pdf版,可以私信我免费领取密码“666”进行下载。

第一部分: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支持 测试该应用程序)

2.使用UDP广播事件(UDP的基础知识 UDP广播 UDP示例应用程序 消息POJO: LogEvent 编写广播者 编写监视器 运行LogEventBroadcaster和LogEventMonitor)

第四部分:案例研究

1.案例研究(上)

2.案例研究(下)

总结

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

学习,是为了让我们变成更好的自己。下载这本Netty速成手册,只需你转发 评论文章,关注我,私信领取密码“666”即可进行下载。

本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦

0 人点赞