《RPC 框架:从入门到精通》目录
2025/9/1大约 3 分钟
如果专门写一本 《RPC 框架:从入门到精通》 的书,可以分为 基础概念 → 手写实现 → 常见框架 → 高级特性 → 实践案例 → 未来发展 六个大模块。下面给你一个详细的章节目录:
《RPC 框架:从入门到精通》目录
第一部分 基础篇:走进 RPC
什么是 RPC?
- RPC 的定义与作用
- 与本地调用的区别
- RPC vs REST vs gRPC 对比
- 为什么微服务必须依赖 RPC
RPC 的核心组成
- 客户端与服务端模型
- 序列化与反序列化
- 网络通信协议
- 服务发现与负载均衡
RPC 的应用场景
- 分布式系统中的位置
- 电商、支付、日志、推荐中的实践
- 什么时候适合用 RPC,什么时候用 MQ 或 REST
第二部分 实战篇:从零实现一个 RPC 框架
基础网络通信
- Socket 编程实现远程调用
- 阻塞 IO / NIO / Netty 基础
- 使用 Netty 封装请求和响应
序列化与协议设计
- 常见序列化方式:Java 序列化、JSON、Protobuf、Hessian
- 自定义协议头设计(魔数、版本号、请求 ID)
- 序列化方式对性能的影响
动态代理与服务调用
- JDK 动态代理实现远程调用
- CGLIB 与字节码增强
- 调用链设计
服务注册与发现
- Zookeeper 实现服务注册
- Nacos/Consul/Eureka 实现服务发现
- 客户端负载均衡策略(随机、轮询、一致性哈希)
容错与高可用设计
- 超时控制、重试机制
- 熔断与降级(参考 Hystrix、Resilience4j)
- 服务限流
第三部分 框架篇:主流 RPC 框架深度解析
Dubbo 深入解析
- 架构设计与核心模块
- Dubbo 的协议、注册中心、SPI 机制
- Dubbo 的服务治理能力
- Dubbo3 与 Triple 协议
gRPC 深入解析
- Protocol Buffers 详解
- gRPC 的多语言支持
- gRPC 的流式通信与双向流
- gRPC 在云原生中的应用(Envoy / Istio 集成)
Spring Cloud OpenFeign
- 与 REST 的结合
- 与 Ribbon、Eureka、Hystrix 的整合
- 适合场景与局限性
其他 RPC 框架简析
- Thrift
- Motan
- SOFARPC
- RSocket
第四部分 高级篇:RPC 框架设计的深水区
性能优化
- 连接池与长连接
- 零拷贝与 Netty 优化
- 批量请求与压缩
安全与认证
- TLS/SSL 加密
- Token 鉴权与 OAuth2
- mTLS 双向认证
分布式事务与一致性
- RPC 中的事务挑战
- TCC、Saga、XA 模式
- Seata 等事务框架集成
跨语言与多协议支持
- 如何支持 Java / Go / Python 跨语言调用
- REST + RPC 混合架构设计
- HTTP/2、QUIC 在 RPC 中的应用
第五部分 实践篇:RPC 在生产环境的落地
服务治理
- 注册中心与配置中心集成
- 服务版本控制与灰度发布
- 服务降级与熔断策略
监控与可观测性
- 日志埋点
- 分布式链路追踪(Zipkin / SkyWalking / OpenTelemetry)
- 性能指标与告警
案例:电商系统中的 RPC 应用
- 商品、订单、支付服务调用链设计
- 高并发下的 RPC 调优
- 容灾与多机房部署
第六部分 展望篇:RPC 的未来
云原生与 Service Mesh
- RPC 与 Service Mesh 的关系
- Sidecar 模式取代 SDK?
- Istio/Linkerd 与 gRPC 的结合
Serverless 与无边界 RPC
- FaaS 下的远程调用
- 事件驱动与 RPC 的融合
总结与展望
- RPC 的发展趋势
- 开发者学习路径
- 从工程师到架构师的 RPC 思维
📌 特色设计:
- 每个章节配 原理 + 代码实现 + 案例,读者可以手写一个小型 RPC 框架,再对比 Dubbo/gRPC。
- 书分层次,入门的人可以看前两部分,进阶的人重点看第三、四部分。