Dubbo

Dubbo是一款由阿里巴巴维护并开源给Apache的分布式服务框架。作为高性能、轻量级的RPC框架,Dubbo提供面向接口的远程方法调用、智能容错和负载均衡、服务自动注册和发现等核心能力。本文详细介绍Dubbo的架构、角色及负载均衡策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dubbo是一个分布式服务框架,是国内阿里巴巴的维护的一个项目,后开源给Apache。

Dubbo是什么?

简单来说,dubbo就是一款高性能、轻量级的RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

那么什么又叫作RPC?

RPC【Remote Procedure Call】--->远程过程调用。是一种进程间通信方式,他是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,远程机器根据传过来的参数运行代码最后返回一个结果给调用者。

RPC基本原理:

   

RPC两个核心模块:通信、序列化。

ok,了解了什么事RPC以后我们转过头来看dubbo。

Dubbo的架构以及角色:

                                          

服务提供者(Provider:暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。

服务消费者(Consumer: 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

注册中心(Registry:注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者

监控中心(Monitor:服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心

调用关系说明:

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

Dubbo的负载4种负载均衡策略

  • 随机,按权重设置随机概率,在一个截面上碰撞的概率较高,但调用越大分布越均匀
  • 最少活跃调用数。响应快的提供者接受越多请求,响应慢的接受越少请求
  • 轮询模式。按公约后的权重设置轮询比例。但存在响应慢的服务提供者会累积请求
  • 一致性Hash,相同参数的请求总是发到同一提供者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值