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

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

相关推荐
xian_wwq2 小时前
【学习笔记】-深度认知系列-第1讲-AI不是魔法——三句话讲清楚人工智能到底是什么
笔记·学习·深度认知
M78佐菲3 小时前
c语言学习笔记:排序与查找方法整理
linux·c语言·笔记·学习·算法
摇滚侠4 小时前
《SpringBoot 3:入门与应用实战》第 5 章 使用 Spring Boot 阅读笔记 9
java·spring boot·笔记
浪兎兎5 小时前
Docker 容器技术笔记
笔记·docker·容器
LuminousCPP5 小时前
数据结构‑二叉树(二):二叉堆从零实现|Heap结构设计 + 建堆优化 + 堆排序深度解析
c语言·数据结构·笔记·二叉树
Likeadust5 小时前
应急调度看不清位置?集群对讲调度系统EasyDSS集群对讲调度室上线可配置地图
dubbo
噜~噜~噜~5 小时前
操作系统笔记-2.2.6 多处理机调度
笔记·操作系统
kyrie_sakura5 小时前
python学习笔记3 -- 流程控制语句结构
笔记·python·学习
Ruannn(努力版)9 小时前
Academic writing
笔记