code学习

Dubbo基础入门介绍Dubbo介绍

RFC简介

RPC(

Remote Procedure Call

)远程过程调用协议,是一种用于基于客户端服务器的应用程序的解释通信技术。它也称为子例程调用或功能调用。 客户端具有RPC转换并发送到服务器的请求消息。此请求可以是对远程服务器的过程或函数调用。当服务器收到请求时,它将所需的响应发送给客户端。服务器处理呼叫时,客户端被阻止,并且仅在服务器完成后才恢复执行。

远程过程调用中的事件序列如下:

  • 客户端由客户端调用。
  • 客户端存根对系统调用,将消息发送到服务器并将参数放在消息中。
  • 该消息由客户端的操作系统从客户端发送到服务器。
  • 该消息通过服务器操作系统传递给服务器存根。
  • 服务器存根将参数从消息中删除。
  • 然后,服务器存根调用服务器过程。

流程如下的所示:

Dubbo基础入门介绍Dubbo介绍

Dubbo介绍

Dubbo2021年更新了dubbo3,原理基本一致,但又有些许不同 ---->What’s New in Dubbo3

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:

面向接口(Dubbo3 应用级服务发现,以应用粒度组织地址数据)的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现

,基本工作原理如下图:

Dubbo基础入门介绍Dubbo介绍

Dubbo工作流程

Dubbo基础入门介绍Dubbo介绍

Dubbo支持的负载均衡算法

  • 随机:从多个服务提供者随机选择⼀个来处理本次请求,调用量越大则分布越均匀,并支持按权重设置随机概率
    Dubbo基础入门介绍Dubbo介绍
  • 轮询:依次选择服务提供者来处理请求, 并⽀持按权重进⾏轮询,底层采⽤的是平滑加权轮询算法
  • 最小活跃调用数:统计服务提供者当前正在处理的请求,下次请求过来则交给活跃数最小的服务器来处理
  • 一致性哈希:相同参数的请求总是发到同⼀个服务提供者

继续阅读