(微服务)Dubbo 服务调用

Dubbo 服务调用流程笔记

1. Dubbo 简介

  • Dubbo 是高性能的 RPC 框架,允许服务调用者像调用本地方法一样调用远程服务。

  • 核心功能:

    • 服务注册与发现

    • 服务暴露

    • 负载均衡

    • 容错和集群管理

    • 高效的远程调用协议


2. 核心概念

  • Provider(服务提供者):暴露接口供远程调用。

  • Consumer(服务消费者):调用远程服务接口。

  • Registry(注册中心):管理服务列表,实现动态发现。

  • Proxy(代理对象):消费端的代理,调用时封装 RPC 请求。

  • Cluster(集群容错):控制调用失败时的策略,如重试或快速失败。

  • Loadbalance(负载均衡):控制多 Provider 间请求分配方式。


3. 调用流程

  1. Consumer 启动

    • 系统扫描到需要调用的远程服务。

    • Dubbo 生成代理对象并注入到调用端。

  2. 方法调用

    • 调用代理对象方法时,Dubbo 会把调用封装成 RPC 请求。
  3. 服务发现

    • 代理通过注册中心查找可用的 Provider。

    • 如果配置了直连地址,也可以直接访问 Provider。

  4. 远程调用

    • 请求通过网络发送到 Provider。

    • Provider 接收到请求后执行真实方法。

  5. 返回结果

    • Provider 将执行结果或异常返回给 Consumer。

    • 代理对象接收响应并返回给调用方。


4. 部署与特性

  • 同一台机器

    • 可以直接调用本地服务,避免网络开销。
  • 不同机器

    • 通过网络 RPC 调用 Provider,实现服务解耦。
  • 注册中心

    • 动态发现服务,支持负载均衡和容错。
  • Consumer 与 Provider 解耦

    • Consumer 只依赖接口,不依赖实现,适合微服务架构。

5. 常见特性

  • 支持版本和分组管理服务,便于多版本共存。

  • 支持超时和重试机制,增强调用可靠性。

  • 可配置异步调用和容错策略,适应不同业务需求。

  • 支持本地调用优化(inJvm),提高同机调用性能。

  • 支持注册中心直连和服务发现两种方式。

相关推荐
摇滚侠15 分钟前
Spring Boot3零基础教程,为什么有Reactive-Stream 规范,响应式编程,笔记101
java·spring boot·笔记
TL滕1 小时前
从0开始学算法——第一天(认识算法)
数据结构·笔记·学习·算法
YuforiaCode1 小时前
神领物流v2.0-day3-运费微服务笔记(个人记录、含练习答案、仅供参考)
笔记
zhangrelay2 小时前
如何使用AI快速编程实现标注ROS2中sensor_msgs/msg/Image图像色彩webots2025a
人工智能·笔记·opencv·学习·计算机视觉·机器人视觉
m0_598250002 小时前
电源完整性07-如何确定PDN网络中的大电容
笔记·单片机·嵌入式硬件·硬件工程
摇滚侠3 小时前
Spring Boot3零基础教程,Reactive-Stream 规范核心接口,笔记103
java·spring boot·笔记
!!!!!!!!!!!!!!!!.4 小时前
CTF WEB入门 命令执行篇29-49
笔记·安全
bnsarocket5 小时前
Verilog和FPGA的自学笔记8——按键消抖与模块化设计
笔记·fpga开发·verilog·自学·硬件编程
TL滕5 小时前
从0开始学算法——第一天(如何高效学习算法)
数据结构·笔记·学习·算法
仰望—星空5 小时前
MiniEngine学习笔记 : CommandAllocatorPool
笔记·学习