Skip to content

RPC 技术栈总览(Dubbo + Zookeeper)

一句话定位:RPC(远程过程调用)让「调远程服务」像「调本地方法」一样——Dubbo 是高性能 Java RPC 框架,Zookeeper 是分布式协调服务(常作注册中心);三者关系:Provider 把服务注册到 Zookeeper,Consumer 从 Zookeeper 订阅地址,再用 Dubbo 的负载均衡选一台实例发起调用

组件栈地图

组件职责
DubboRPC 框架:服务调用、集群容错、负载均衡、配置
Zookeeper协调服务:注册中心、配置中心、分布式锁、选举
Monitor统计服务调用次数与耗时

Dubbo 架构的调用关系

0. 容器启动,加载 Provider
1. Provider 向 Register 注册服务
2. Consumer 向 Register 订阅服务
3. Register 返回 Provider 地址列表(有变更推送)
4. Consumer 基于负载均衡选一台 Provider 调用(失败换一台)
5. 双方统计调用次数/耗时 → 上报 Monitor

Dubbo vs Spring Cloud

维度DubboSpring Cloud
定位高性能 RPC 框架微服务全家桶
通信默认 Dubbo 协议(长连接、NIO)HTTP/REST
注册中心Zookeeper/NacosEureka/Nacos
生态更聚焦服务调用更全面(网关/配置/熔断)

不变量(必须成立的约束)

  • RPC 是「长连接」通信(Provider/Consumer/Register 之间),区别于 HTTP 短连接。
  • Register 宕机不影响已运行的调用——Consumer 本地缓存了地址列表。
  • 服务调用链固定:Invoker(实例) → Directory(集合) → Router(路由) → LoadBalance(负载均衡)

常见误解

  • 以为 RPC 和 HTTP 一样 → RPC 是长连接 + 自定义协议,性能更高,但跨语言/调试不如 HTTP 通用。
  • 以为 Zookeeper 只能当注册中心 → 它还是配置中心、分布式锁、选举、队列的通用协调服务。

关联

最近更新