(微服务)Dubbo 服务调用
Dubbo 服务调用流程笔记
1. Dubbo 简介
Dubbo 是高性能的 RPC 框架,允许服务调用者像调用本地方法一样调用远程服务。
核心功能:
服务注册与发现
服务暴露
负载均衡
容错和集群管理
高效的远程调用协议
2. 核心概念
Provider(服务提供者):暴露接口供远程调用。
Consumer(服务消费者):调用远程服务接口。
Registry(注册中心):管理服务列表,实现动态发现。
Proxy(代理对象):消费端的代理,调用时封装 RPC 请求。
Cluster(集群容错):控制调用失败时的策略,如重试或快速失败。
Loadbalance(负载均衡):控制多 Provider 间请求分配方式。
3. 调用流程
Consumer 启动
系统扫描到需要调用的远程服务。
Dubbo 生成代理对象并注入到调用端。
方法调用
调用代理对象方法时,Dubbo 会把调用封装成 RPC 请求。
服务发现
代理通过注册中心查找可用的 Provider。
如果配置了直连地址,也可以直接访问 Provider。
远程调用
请求通过网络发送到 Provider。
Provider 接收到请求后执行真实方法。
返回结果
Provider 将执行结果或异常返回给 Consumer。
代理对象接收响应并返回给调用方。
4. 部署与特性
同一台机器:
可以直接调用本地服务,避免网络开销。
不同机器:
通过网络 RPC 调用 Provider,实现服务解耦。
注册中心:
动态发现服务,支持负载均衡和容错。
Consumer 与 Provider 解耦:
Consumer 只依赖接口,不依赖实现,适合微服务架构。
5. 常见特性
支持版本和分组管理服务,便于多版本共存。
支持超时和重试机制,增强调用可靠性。
可配置异步调用和容错策略,适应不同业务需求。
支持本地调用优化(inJvm),提高同机调用性能。
支持注册中心直连和服务发现两种方式。