Dubbo 架构与原理 专栏导览

专栏定位

本专栏聚焦 Apache Dubbo RPC 框架的架构设计与核心机制——从 SPI 微内核的插件化架构,到服务导出/引用的完整链路,再到负载均衡、集群容错和服务治理。Dubbo 是 Java 微服务生态中最成熟的 RPC 框架——理解其分层架构和扩展机制,不仅能更好地使用 Dubbo,更能理解 RPC 框架设计的通用范式。

本专栏覆盖 Dubbo 2.7 到 Dubbo 3.x 的关键演进,重点分析 Triple 协议(HTTP/2 + Protobuf)和应用级服务发现等新特性。

目标读者

  • 日常使用 Dubbo 但希望理解其内部运作的后端/微服务工程师
  • 需要基于 Dubbo 做服务治理(限流/熔断/灰度)的架构师
  • 对 RPC 框架设计和 Netty 网络编程感兴趣的技术爱好者

专栏目录

序号标题核心内容
0101 Dubbo 全局架构——服务注册、发现与调用链路Provider/Consumer/Registry/Monitor 四大角色、一次 RPC 调用的完整链路、SPI 扩展机制的核心地位
0202 Dubbo SPI——微内核与插件化架构JDK SPI 的局限 → Dubbo SPI 的增强(按需加载/依赖注入/自适应扩展/@Adaptive)、ExtensionLoader 的加载机制、Wrapper 装饰器链
0303 服务导出与服务引用——从 @DubboService 到网络监听ServiceConfig 的导出流程(Protocol → Invoker → Exporter)、ReferenceConfig 的引用流程(创建代理 → 连接 Provider)、延迟暴露与服务预热
0404 注册中心——ZooKeeper、Nacos 与服务发现模型接口级服务发现 vs 应用级服务发现(Dubbo 3.x)、Zookeeper 注册中心的节点结构、Nacos 注册中心的推拉模型、注册中心宕机时的本地缓存容灾
0505 通信层——Netty 传输与 Dubbo 协议Dubbo 协议的报文格式(Magic/Flag/Body)、Netty 的 Channel 管理与心跳、Exchange 层的请求-响应关联、多协议支持(Triple/gRPC/REST)
0606 负载均衡与集群容错四种负载均衡(Random/RoundRobin/LeastActive/ConsistentHash)、集群容错策略(Failover/Failfast/Failsafe/Forking/Broadcast)、路由规则与标签路由
0707 服务治理——限流、熔断与优雅停机TPS Limiter 与并发控制、Sentinel 集成的熔断降级、优雅停机的注销-等待-关闭流程、服务版本与分组的灰度发布
0808 Dubbo 3.x 新特性——Triple 协议与应用级服务发现Triple 协议(基于 HTTP/2 + Protobuf)、与 gRPC 的互通、应用级服务发现的元数据中心、Mesh 化与 Proxyless 模式

推荐阅读路径

核心原理路径:01 → 02 → 03 → 05

服务治理路径:04 → 06 → 07

新特性路径:08

前置知识

  • Java 基础、反射与动态代理
  • 建议先阅读 Netty 专栏了解 NIO 和 Reactor 线程模型
  • 建议了解 ZooKeeper 的基本原理(Dubbo 的默认注册中心)

关联专栏

  • Netty:Dubbo 网络层基于 Netty 实现
  • ZooKeeper:Dubbo 默认注册中心
  • Spring Core:Dubbo 深度整合 Spring Bean 生命周期
  • OOP 设计模式:Dubbo SPI、代理模式、责任链等设计模式的实战应用
  • 服务网格:Dubbo 3.x Mesh 化与 Proxyless 模式
  • 链路追踪:Dubbo Filter 与分布式追踪的集成