0.Netty学习路线

#netty #review

学习路线

共 18 篇,分四个阶段:

  • 阶段一(1-3):为什么用 Netty,整体架构是什么,怎么启动
  • 阶段二(4-7):四大核心组件:Channel、EventLoop、Pipeline、Handler
  • 阶段三(8-11):数据处理:ByteBuf、零拷贝、自定义协议、数据发送
  • 阶段四(12-16):底层原理与性能优化
  • 实战(17-18):HttpServer 和 WebSocket 编码实战

阶段一:入门基础

搞清楚 Netty 解决了什么问题,整体长什么样,怎么把服务跑起来。

  1. 1.为什么选择Netty — NIO 多路复用、Reactor 模型、零拷贝,Netty 的核心优势
  2. 2.Netty整体架构 — 三层架构:网络层 → 事件调度层 → 服务编排层,代码包结构
  3. 3.Netty全局入口Bootstrap — Bootstrap vs ServerBootstrap,Boss/Worker 分工,服务端启动代码

阶段二:四大核心组件

Netty 的骨架,必须搞透。

  1. 4.Netty的Channel — Channel 类型、生命周期回调、常用参数配置
  2. 5.Netty的EventLoop — EventLoopGroup/EventLoop 关系,Reactor 三种线程模型,无锁串行化,任务队列
  3. 6.Netty的ChannelPipeline — 双向链表结构,HeadContext/TailContext,事件传播方向
  4. 7.Netty的ChannelHandler与Context — Handler vs Context 的区别,Inbound/Outbound 回调,异常传播

阶段三:数据处理

数据怎么读、怎么写、怎么编解码。

  1. 8.Netty的ByteBuf — ByteBuf 结构,读写指针,池化与非池化,引用计数
  2. 9.Netty的零拷贝 — DirectBuffer、CompositeByteBuf、slice、FileRegion,五种零拷贝技术
  3. 10.Netty自定义协议实现 — 协议头设计,编解码器类型,粘包拆包处理,LengthFieldBasedFrameDecoder
  4. 11.Netty的WriteAndFlush — write/flush 分离,ChannelOutboundBuffer 三指针,高低水位线,doWrite 自旋

阶段四:底层原理与性能优化

深入理解 Netty 为什么快。

  1. 12.Netty如何解决空轮询的 — JDK epoll 空轮询 bug,selectCnt 计数,Selector 重建机制
  2. 13.Netty的HashedWheelTimer — 时间轮原理,O(1) 任务调度,Kafka 层级时间轮优化
  3. 14.Netty的FastThreadLocal — FastThreadLocal vs ThreadLocal,性能差异,使用场景
  4. 15.Netty的对象池Recycler — 对象池原理,Stack/WeakOrderQueue,多线程回收机制
  5. 16.JCTools并发工具 — Mpsc/Spsc/Spmc/Mpmc 队列,Cache Line 填充,伪共享解决

实战

跑起来,看看实际代码长什么样。

  1. 17.Netty-HttpServer编码实战 — HttpServerCodec、HttpObjectAggregator,处理 HTTP 请求
  2. 18.Netty-WebSocket编码实战 — WebSocketServerProtocolHandler,握手升级,帧数据处理