文章目录
- Apache Dubbo:企业级微服务的老牌 RPC 框架
- 1、 这是干什么的
- 2、 为什么用它
- 3、 架构长什么样
- 4、 版本怎么选
- 5、 上手成本
- 6、 适合谁
Apache Dubbo:企业级微服务的老牌 RPC 框架
apache/dubbo 在 GitHub 上累计 41,527 Star,是国内微服务领域使用最广的 Java RPC 框架之一。
1、 这是干什么的
一句话:服务之间怎么互相调用、怎么找到对方、怎么管控流量,Dubbo 给你一套完整的方案。
它解决的是微服务架构里最核心的几件事:通信、服务发现、流量管理、可观测性、安全。把这层基础设施做掉,业务代码就能专注写逻辑。
支持的语言不只是 Java,还有 Go、Python、PHP、Erlang、Rust、Node.js,基本覆盖主流技术栈。
2、 为什么用它
写过微服务的人都知道,分布式系统真正的麻烦不在写代码,而在治理。
服务一多,调用关系乱成一团,谁在调谁、超时设多少、怎么切流量、怎么做压测、怎么定位一次调用失败的原因,这些事情每件都得自己造轮子。
Dubbo 把这些沉淀成现成能力。注册表接 Zookeeper 或 Nacos,消费者动态发现提供者;协议层支持 Triple(gRPC 兼容)、Dubbo2(TCP)、REST,也能自己扩展;配置、监控、链路追踪、安全控制都有内置方案。
3、 架构长什么样
消费者和提供者之间走 RPC 协议通信,注册中心负责服务发现,治理策略控制流量走向,配套的可视化控制台能看到全局状态。
整套设计是面向大规模生产环境的,不是 demo 玩具。
4、 版本怎么选
目前主线是 Dubbo3,3.3.x 系列是活跃维护版本,支持 JDK 1.8 到 21,带 Mutiny 响应式、亲和性路由、方法级限流、Spring 6 安全插件等特性。3.2.x 还在用,主打稳定性和原生镜像,性能比上一代提升 30%。3.1.x 已进入维护停滞状态。
Dubbo2 的 2.7.x、2.6.x、2.5.x 全部 EOL,新项目别再选这条线。
5、 上手成本
Spring Boot 项目接 Dubbo 很轻量,加一个 starter 依赖,写几行 YAML 配置,就能跑起来服务注册、监控、链路追踪。
如果想更精简,用轻量 RPC API,几行代码起一个 RPC 服务,不绑 Spring 也能用。
6、 适合谁
- 中大型 Java 微服务团队,需要一个成熟的 RPC + 治理方案
- 多语言微服务架构,想用一套统一的服务通信标准
- 从 Dubbo2 升级到 Dubbo3 的大厂内部系统
- 想接 Triple 协议、跟 gRPC 生态打通的场景
老牌项目的好处是文档全、踩坑案例多、生产案例多,坏处是概念密度不低,初次接入需要花点时间理解 provider、consumer、registry、protocol 这一套模型。
要花点时间理解 provider、consumer、registry、protocol 这一套模型。