Dubbo

什么是RPC

RPC是Remote Procedure Call的缩写 翻译为:远程过程调用,目标是为了实现两台(多台)计算机\服务器,相互调用方法\通信的解决方
RPC只是实现远程调用的一套标准
该标准主要规定了两部分内容
1.通信协议
2.序列化协议
为了方便大家理解RPC,下面的图片帮助理解

在这里插入图片描述


上图是老婆和老公在家的时,老婆让老公洗碗的调用流程
这个流程可以理解为项目内的功能调用,类似面向对象编程实例化对象,调用方法的过程
但是这个调用关系如果是远程的,意思是老婆和老公现在是两个不同的项目

在这里插入图片描述


我们看到上图中,远程调用必须借助一个通信设备,如图片中的手机

通信协议

通信协议指的就是远程调用的通信方式
实际上这个通知的方式可以有多种
例如:写信,飞鸽传书,闪送等等
在程序中,通信方式也有多种

序列化协议

序列化协议指通信内容的格式,双方都要理解这个格式
上面的图片中,老婆给老公发信息,一定是双方都能理解的信息
发送信息是序列化过程,接收信息需要反序列化
程序中,序列化的方式也是多种的

什么是dubbo

dubbo是一套RPC框架。既然是框架,我们可以在框架结构高度,定义dubbo中使用的通信协议,使用的序列化框架技术,而数据格式由dubbo定义,我们负责配置之后直接通过客户端调用服务端代码。可以说dubbo就是RPC概念的实现。
dubbo是SpringCloudalibaba提供的框架,能够实现微服务相互调用功能!

dubbo的发展历程

在这里插入图片描述

dubbo对协议的支持

RPC框架分通信协议和序列化协议
dubbo框架支持多种通信协议和序列化协议,可以通过配置文件进行修改
dubbo支持的通信协议

  • dubbo协议(认)
  • rmi协议
  • hessian协议
  • http协议
  • webservice

支持的序列化协议

  • hessian2(认)
  • java序列化
  • compactedjava
  • nativejava
  • fastjson
  • dubbo
  • fst
  • kryo

dubbo认情况下,支持的协议有如下特征

dubbo服务的注册与发现

dubbo的调用过程中,必须包含注册中心的支持
注册中心推荐阿里自己的Nacos,兼容性好,能够发挥最大性能
但是dubbo也支持其它软件作为注册中心(例如Redis,zookeeper等)
服务发现,即消费端自动发现服务地址列表的能力,是微服务框架需要具备的关键能力,借助于自动化的服务发现,微服务之间可以在无需感知对端部署位置与 IP 地址的情况下实现通信。

在这里插入图片描述


consumer服务的消费者,指服务的调用者(使用者)
provider服务的提供者,指服务的拥有者(生产者)
dubbo中,远程调用依据是服务的提供者在Nacos中注册的服务名称
一个服务名称,可能有多个运行的实例,任何一个空闲的实例都可以提供服务

常见面试题:dubbo的注册发现流程

1.首先服务的提供者启动服务时,将自己的具备的服务注册注册中心,其中包括当前提供者的ip地址和端口号等信息,dubbo会同时注册该项目提供的远程调用方法
2.消费者(使用者)启动项目,也注册注册中心,同时从注册中心中获得当前项目具备的所有服务列表
3.当注册中心中有新的服务出现时,会通知已经订阅发现的消费者,消费者会更新所有服务列表
4.RPC调用,消费者需要调用远程方法时,根据注册中心服务列表的信息,只需服务名称,不需要ip地址和端口号等信息,就可以利用dubbo调用远程方法

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...
win11本地账户怎么改名?win11很多操作都变了样,用户如果想要...