Netty & RPC 实战
📚 30章 · 从入门到框架
01
Netty概述与IO模型
BIO/NIO/AIO
BIO、NIO、AIO的区别,Netty的优势与核心组件介绍。
02
环境搭建与第一个程序
Echo
Maven依赖配置,编写一个简单的Echo服务器与客户端。
03
Channel与ChannelHandler
Channel的生命周期,ChannelHandler的职责与执行流程。
04
EventLoop与EventLoopGroup
事件循环机制,线程模型详解(单线程、多线程、主从多线程)。
05
ByteBuf详解
池化·指针
ByteBuf的结构、读写指针、池化与非池化、直接内存与堆内存。
06
Pipeline与Handler链
Pipeline的添加、删除、替换操作,Handler的执行顺序。
07
Codec与编解码器
内置编解码器(StringDecoder、StringEncoder),自定义编解码器实现。
08
粘包与拆包问题
解决方案
问题产生原因,Netty提供的解决方案(LineBasedFrameDecoder等)。
09
Future与Promise
异步回调机制,Promise的使用场景与注意事项。
10
IdleStateHandler与心跳
空闲检测,实现客户端与服务端的心跳保活。
11
SSL/TLS支持
配置SSLContext,实现安全的网络通信。
12
WebSocket支持
聊天室
WebSocket握手,实现一个简单的聊天室。
13
UDP支持
UDP协议的特点,Netty中UDP的收发实现。
14
文件传输
零拷贝
零拷贝技术,使用FileRegion与ChunkedWriteHandler传输大文件。
15
流量控制
背压
高低水位线(WriteBufferWaterMark),背压机制与限流策略。
16
线程模型优化
EventLoopGroup的合理配置,避免线程阻塞的陷阱。
17
调试与性能调优
开启日志,使用Netty的Metrics,常见性能瓶颈分析。
18
RPC框架原理概述
RPC的核心概念(代理、序列化、网络传输、服务发现),与HTTP调用的区别。
19
序列化选型
对比
Java原生序列化、JSON、Hessian、Protobuf、Kryo的对比与选择。
20
服务注册与发现
基于Zookeeper的实现,基于Nacos的实现。
21
负载均衡策略
随机、轮询、一致性哈希、最少活跃调用。
22
容错机制
Failover、Failfast、Failsafe、Broadcast等策略。
23
协议设计
自定义
自定义RPC协议头(魔数、版本号、序列化方式、请求ID、数据长度)。
24
代理实现
JDK/CGLIB
JDK动态代理与CGLIB代理,生成远程调用代理对象。
25
客户端实现
连接池
基于Netty的客户端,连接池管理,异步转同步的Future机制。
26
服务端实现
基于Netty的服务端,请求分发,反射调用本地方法。
27
拦截器与过滤器
AOP
实现日志拦截、权限校验、耗时统计等AOP功能。
28
优雅关闭
注册中心摘除节点,等待请求处理完毕,释放资源。
29
链路追踪
OpenTracing
集成OpenTracing,传递TraceId,实现调用链可视化。
30
综合实战
Spring Boot
从零搭建一个简易RPC框架,整合Spring Boot,实现服务发布与调用。