分布式RPC服务调用框架选型:使用Dubbo实现分布式服务调用

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
简介: 本文是一篇详细介绍分布式RPC调用框架Dubbo的文章,介绍了Dubbo服务治理和服务调用的实现。分析了Dubbo中的核心功能,包括Remoting,Cluster和RetRegistry的作用和功能。详细说明了Dubbo中几个角色以及各个角色之间的调用关系。通过这篇文章,可以快速了解Dubbo框架的基本面貌和重要原理,为以后更加深入细致的学习RPC调用框架做出准备。

Dubbo概念

  • Dubbo是一个高性能,轻量级的RPC分布式服务框架
  • 提供了三核心能力:

    • 面向接口的远程方法调用(@Reference)
    • 智能容错
    • 负载均衡
  • Dubbo特点: 按照分层的方式来架构,可以使各个层之间解耦合
  • Dubbo的角色:

    • 提供方:Provider
    • 消费方:Consumer
    • Dubbo的提供非常简单的服务模型,要么是提供方提供服务,要么是消费方消费服务

Dubbo的服务治理

  • 透明远程调用: 调用远程方法就像调用本地方法一样,只需简单配置,没有任何API侵入
  • 负载均衡机制: Client端LB,在内网替代F5等硬件负载均衡器
  • 容错重试机制: 服务Mock数据,重试次数,超时机制
  • 自动注册发现: 注册中心基于接口名查询服务提供者的IP地址,可以添加和删除服务提供者
  • 性能日志监控: Monitor,统计服务的调用次数和调用时间的监控中心
  • 服务治理中心: 路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡

Dubbo的核心功能

  • Remoting: 远程通讯,提供对多种NIO框架抽象封装,包括"同步转异步"和"请求-响应"模式的信息交换方式
  • Cluster: 服务框架,提供基于接口方法的透明远程过程调用,包括:多协议支持,软负载均衡,容错重试,路由规则,动态配置等集群支持
  • Registry: 服务注册中心,服务自动发现.基于注册中心目录服务,使服务消费方能动态地查找服务提供方,使地址透明,使服务提供方可以平滑地增加和减少机器
通信模型:
BIO : 同步并阻塞
NIO : 异步并阻塞
AIO : 异步非阻塞

通信框架 : netty

Dubbo组件角色

组件角色 说明
Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务调用次数和调用时间的监控中心
Container 服务运行容器

组件调用关系说明

  • 服务容器Container负责启动,加载,运行服务提供者
  • 服务提供者Provider在启动时,向注册中心注册自己提供的服务
  • 服务消费者Consumer在启动时,向注册中心订阅自己所需的服务
  • 注册中心Registry返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
  • 服务消费者Consumer从提供者地址列表中,基于负载均衡算法,选择一台提供者进行调用,如果调用失败,再选另一台进行调用
  • 服务消费者Consumer和服务提供者Provider,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心

Dubbo Admin管理控制台

  • 管理控制台的主要功能:

    • 路由规则
    • 动态配置
    • 服务降级
    • 访问控制
    • 权限调整
    • 负载均衡
相关实践学习
小试牛刀,一键部署电商商城
SAE 仅需一键,极速部署一个微服务电商商城,体验 Serverless 带给您的全托管体验,一起来部署吧!
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
4月前
|
数据采集 存储 数据可视化
分布式爬虫框架Scrapy-Redis实战指南
本文介绍如何使用Scrapy-Redis构建分布式爬虫系统,采集携程平台上热门城市的酒店价格与评价信息。通过代理IP、Cookie和User-Agent设置规避反爬策略,实现高效数据抓取。结合价格动态趋势分析,助力酒店业优化市场策略、提升服务质量。技术架构涵盖Scrapy-Redis核心调度、代理中间件及数据解析存储,提供完整的技术路线图与代码示例。
408 0
分布式爬虫框架Scrapy-Redis实战指南
|
2月前
|
监控 Java 调度
SpringBoot中@Scheduled和Quartz的区别是什么?分布式定时任务框架选型实战
本文对比分析了SpringBoot中的`@Scheduled`与Quartz定时任务框架。`@Scheduled`轻量易用,适合单机简单场景,但存在多实例重复执行、无持久化等缺陷;Quartz功能强大,支持分布式调度、任务持久化、动态调整和失败重试,适用于复杂企业级需求。文章通过特性对比、代码示例及常见问题解答,帮助开发者理解两者差异,合理选择方案。记住口诀:单机简单用注解,多节点上Quartz;若是任务要可靠,持久化配置不能少。
242 4
|
7月前
|
存储 监控 数据可视化
常见的分布式定时任务调度框架
分布式定时任务调度框架用于在分布式系统中管理和调度定时任务,确保任务按预定时间和频率执行。其核心概念包括Job(任务)、Trigger(触发器)、Executor(执行器)和Scheduler(调度器)。这类框架应具备任务管理、任务监控、良好的可扩展性和高可用性等功能。常用的Java生态中的分布式任务调度框架有Quartz Scheduler、ElasticJob和XXL-JOB。
2416 66
|
6月前
|
数据采集 人工智能 分布式计算
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
阿里云推出的MaxFrame是链接大数据与AI的分布式Python计算框架,提供类似Pandas的操作接口和分布式处理能力。本文从部署、功能验证到实际场景全面评测MaxFrame,涵盖分布式Pandas操作、大语言模型数据预处理及企业级应用。结果显示,MaxFrame在处理大规模数据时性能显著提升,代码兼容性强,适合从数据清洗到训练数据生成的全链路场景...
271 5
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
|
6月前
|
人工智能 分布式计算 大数据
MaxFrame 产品评测:大数据与AI融合的Python分布式计算框架
MaxFrame是阿里云MaxCompute推出的自研Python分布式计算框架,支持大规模数据处理与AI应用。它提供类似Pandas的API,简化开发流程,并兼容多种机器学习库,加速模型训练前的数据准备。MaxFrame融合大数据和AI,提升效率、促进协作、增强创新能力。尽管初次配置稍显复杂,但其强大的功能集、性能优化及开放性使其成为现代企业与研究机构的理想选择。未来有望进一步简化使用门槛并加强社区建设。
319 8
|
7月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
260 2
|
8月前
|
消息中间件 运维 数据库
Seata框架和其他分布式事务框架有什么区别
Seata框架和其他分布式事务框架有什么区别
151 1
|
Dubbo Java 应用服务中间件
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
|
9月前
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo:微服务通信的高效解决方案
【10月更文挑战第15天】随着信息技术的发展,微服务架构成为企业应用开发的主流。Spring Cloud Dubbo结合了Dubbo的高性能RPC和Spring Cloud的生态系统,提供高效、稳定的微服务通信解决方案。它支持多种通信协议,具备服务注册与发现、负载均衡及容错机制,简化了服务调用的复杂性,使开发者能更专注于业务逻辑的实现。
178 2
|
4月前
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代

热门文章

最新文章