Skip to content

Architecture

alanxtl edited this page Sep 20, 2026 · 1 revision

架构与扩展

首页 · 专题导读 · 历史设计

理解 Dubbo-go 时,可以先把业务接口、调用治理、协议传输和服务发现分开,再沿一次调用串起来。下面是阅读源码与文档的概念顺序,不是所有协议实现都逐层执行的精确时序图。

业务代码 / 生成的客户端
        ↓
client → 调用上下文、Filter
        ↓
Directory / Router → 候选实例
        ↓
Cluster / LoadBalance → 选择实例、处理失败
        ↓
Protocol / 序列化 / 网络传输
        ↓
server → Filter → 业务实现

Registry + Metadata 为实例列表与服务描述提供数据

官网的 架构设计、协议层、注册中心 解释了这些模块。部分源码文章仍沿用历史包结构,阅读当前代码时应结合 配置迁移。

各层关注的问题

层面 需要理解的约定 继续阅读
接口定义 protobuf package、go_package、服务名与方法名的区别 Triple 生成器
RPC 调用 unary/streaming、错误、attachments、超时与重试 功能专题
服务发现 接口级 URL 与应用实例、服务映射、metadata revision 应用与接口
治理 Filter、路由、负载均衡和 Cluster 策略各自处理什么 治理与运维
扩展 扩展接口、注册名与装配;不要直接修改生成文件 AOP 与扩展

扩展 Filter

先明确逻辑应在 client 端、server 端还是两端执行,再核对扩展注册名及启用方式。Filter 适合调用链上的横切行为,但超时、重试和业务错误之间的语义仍须保持清楚。仓库 Filter 文档 比早期博客更接近本轮采集的 main;旧文保留供比较设计演进。

理解 Metadata 的演进

应用级服务发现手册 是配置入口。metadata 讨论 和 设计审查报告 记录了设计背景、兼容问题和审查意见,不作为最终实现规范。已经发布的变更另查 3.3.2 与 CHANGELOG。

历史设计资料

V1.0 分层设计、早期路线图、TCP/Hessian 任务 和原始架构图片/PPT 均保留在 历史档案。它们描述的是当时的接口和目标,不用于判断当前模块是否已经实现。

Clone this wiki locally