4

Dubbo基础入门介绍

 1 year ago
source link: https://blog.51cto.com/learningfish/5473872
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

RFC简介

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

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

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

流程如下的所示:

Dubbo基础入门介绍_服务器

Dubbo介绍

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

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口(Dubbo3 应用级服务发现,以应用粒度组织地址数据)的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现,基本工作原理如下图:

Dubbo基础入门介绍_服务器_02

Dubbo工作流程

Dubbo基础入门介绍_服务器_03

Dubbo支持的负载均衡算法

  • 随机:从多个服务提供者随机选择⼀个来处理本次请求,调用量越大则分布越均匀,并支持按权重设置随机概率

    Dubbo基础入门介绍_客户端_04
  • 轮询:依次选择服务提供者来处理请求, 并⽀持按权重进⾏轮询,底层采⽤的是平滑加权轮询算法

Dubbo基础入门介绍_客户端_05
  • 最小活跃调用数:统计服务提供者当前正在处理的请求,下次请求过来则交给活跃数最小的服务器来处理
Dubbo基础入门介绍_服务提供者_06
  • 一致性哈希:相同参数的请求总是发到同⼀个服务提供者
Dubbo基础入门介绍_服务提供者_07

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK