(微服务)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),提高同机调用性能。

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

相关推荐
charlie1145141911 小时前
勇闯前后端Week2:后端基础——Flask API速览
笔记·后端·python·学习·flask·教程
深蓝海拓1 小时前
OpenCV学习笔记之:调整ORB算法的参数以适应不同的图像
笔记·opencv·学习
d111111111d1 小时前
STM32外设--SPI读取W25Q64(学习笔记)硬件SPI
笔记·stm32·单片机·嵌入式硬件·学习
摇滚侠1 小时前
2025最新 SpringCloud 教程,Nacos-配置中心-数据隔离-动态切换环境,笔记18
java·笔记·spring cloud
_Kayo_2 小时前
vue3 computed 练习笔记
前端·vue.js·笔记
TracyCoder1232 小时前
微服务框架选型学习笔记
笔记·学习·微服务
摇滚侠2 小时前
2025最新 SpringCloud 教程,Nacos-注册中心 @LoadBalanced 注解式负载均衡,笔记11
笔记·spring cloud·负载均衡
pq113_62 小时前
开源软件学习笔记 - 移植SFUD
笔记·stm32·sfud·ft4222h
hd51cc3 小时前
MFC多线程学习笔记一:用户界面线程和工作线程
笔记·学习·mfc
草莓熊Lotso3 小时前
红黑树从入门到进阶:4 条规则如何筑牢 O (logN) 效率根基?
服务器·开发语言·c++·人工智能·经验分享·笔记·后端