首页 > 其他分享 >Dubbo概述

Dubbo概述

时间:2022-09-22 21:11:29浏览次数:44  
标签:Dubbo 调用 服务 RPC 概述 注册 序列化

什么是RPC

RPC是Remote Procedure Call的缩写 翻译为:远程过程调用

目标是为了实现两台(多台)计算机\服务器,相互调用方法\通信的解决方案

RPC只是实现远程调用的一套标准

该标准主要规定了两部分内容:

1.通信协议

2.序列化协议

为了方便大家理解RPC,下面的图片帮助理解

 

 

上面图是老婆和老公在家的时,老婆让老公洗碗的调用流程

这个流程可以理解为项目内的功能的调用,类似面向对象编程实例化对象,调用方法的过程

但是这个调用关系如果是远程的,意思是老婆和老公现在是两个不同的项目

 

 

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

通信协议

通信协议指的就是远程调用的通信方式

实际上这个通知的方式可以有多种

例如:写信,飞鸽传书,闪送等等

在程序中,通信方式也有多种

序列化协议

序列化协议指通信内容的格式,双方都要理解这个格式

上面的图片中,老婆给老公发信息,一定是双方都能理解的信息

发送信息是序列化过程,接收信息需要反序列化

程序中,序列化的方式也是多种的

什么是Dubbo

上面对RPC有基本认识之后,再学习Dubbo就简单了

Dubbo是一套RPC框架。既然是框架,我们可以在框架结构高度,定义Dubbo中使用的通信协议,使用的序列化框架技术,而数据格式由Dubbo定义,我们负责配置之后直接通过客户端调用服务端代码。

可以说Dubbo就是RPC概念的实现

Dubbo是SpringCloudAlibaba提供的框架

能够实现微服务相互调用的功能!

Dubbo的发展历程

 

 

我们学习的Dubbo指的都是2.7之后的版本

是能够和SpringCloudAlibaba配合使用的

Dubbo的历程

2012年底dubbo停止更新后到2017年dubbo继续更新之前

2015SpringCloud开始兴起,当时没有阿里的框架

国内公司要从SpringCloud和Dubbo中抉择使用哪个微服务方案

在2012年dubbo停止更新后国内的当当网在dubbo的基础上开发了dubboX框架,并进行维护

2019年后,SpringCloud和Dubbo才能共同使用

Dubbo对协议的支持

RPC框架分通信协议和序列化协议

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

Dubbo支持的通信协议

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

支持的序列化协议

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

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

  • 采用NIO单一长链接
  • 优秀的并发性能,但是处理大型文件的能力差

Dubbo方便支持高并发和高性能

Dubbo服务的注册与发现

在Dubbo的调用过程中,必须包含注册中心的支持

项目调用服务的模块必须在同一个注册中心中

注册中心推荐阿里自己的Nacos,兼容性好,能够发挥最大性能

但是Dubbo也支持其它软件作为注册中心(例如Redis,zookeeper等)

服务发现,即消费端自动发现服务地址列表的能力,是微服务框架需要具备的关键能力,借助于自动化的服务发现,微服务之间可以在无需感知对端部署位置与 IP 地址的情况下实现通信。

上面RPC的示例中,老婆就是服务的消费端,她能发现老公具备的服务

如果老婆调用了老公的服务,就是完成了Dubbo调用

 

 

consumer服务的消费者,指服务的调用者(使用者)也就是老婆的位置

provider服务的提供者,指服务的拥有者(生产者)也就是老公的位置

在Dubbo中,远程调用依据是服务的提供者在Nacos中注册的服务名称

一个服务名称,可能有多个运行的实例,任何一个空闲的实例都可以提供服务

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

1.首先服务的提供者启动服务时,将自己的具备的服务注册到注册中心,其中包括当前提供者的ip地址和端口号等信息,Dubbo会同时注册该项目提供的远程调用的方法

2.消费者(使用者)启动项目,也注册到注册中心,同时从注册中心中获得当前项目具备的所有服务列表

3.当注册中心中有新的服务出现时,会通知已经订阅发现的消费者,消费者会更新所有服务列表

4.RPC调用,消费者需要调用远程方法时,根据注册中心服务列表的信息,只需服务名称,不需要ip地址和端口号等信息,就可以利用Dubbo调用远程方法了

 

标签:Dubbo,调用,服务,RPC,概述,注册,序列化
From: https://www.cnblogs.com/98CoolMan/p/16720859.html

相关文章

  • 方法引用-数组的构造器引用和Junit测试概述
    方法引用-数组的构造器引用ArrayBuilder接口/*定义一个创建数组的函数式接口*/publicinterfaceArrayBuilder{//定义一个创建int类型数组的方法,参数传递......
  • 分布式框架Dubbo整合分布式服务协同框架Zookeeper
    一、创建Maven工程(基础结构)  二、父工程导包(子工程可以调用)  三、创建三台Zookeeper进群   四、配置文件写配置连接Zookeeper  五、通过Zookeepe......
  • 【Python】python语言基础概述
    1.文件类型python文件有3种类型:(1)源代码文件:xx.py。(2)字节代码文件:xx.pyc。由xx.py编译成的二进制字节码文件,通过Python程序加载执行,速度快,能够隐藏源码......
  • 第一章-系统概述
    1.1操作系统基本概述1.1.1OS的概念和功能操作系统是【控制和管理整个计算机系统的硬件和软件资源,合理组织,调度计算机工作与资源的分配】是一个程序集合,是最基本的系统软......
  • Kafka概述
    1、Kafka概述:和消息系统类似(1)特性:1)发布和订阅 2)实时处理数据流 3)分布式存储(2)功能:构建实时数据管道和实时数据流处理,横向扩展(通过增加机器的方式......
  • NR系统概述-架构与演进
    大家好,从今天开始我会把NR相关的知识以博文的方式放上来。可能速度会比较慢,时间也会拉得很长,因为内容比较多,我还在整理中,而且很多内容关联性很强,我得考虑介绍的先后顺序。......
  • Dubbo的环境搭建
    Dubbo的环境搭建最近在复盘之前做过的项目,想重新整理一下各类技术点,那就先从这个印象最为深刻的Dubbo开始吧什么是DubboDubbo是一款开源的RPC架构,它主要有以下功能......
  • JasperReport-PDF报表打印概述
    3PDF报表打印概述3.1概述在企业级应用开发中,报表生成、报表打印下载是其重要的一个环节。在之前的课程中我们已经学习了报表中比较重要的一种:Excel报表。其实除了Excel......
  • BOM 概述
    BOM概述1.什么是BOMBOM(BrowserObjectModel)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是window。BOM由系列相关的对象构成,......
  • 01-物体检测方法概述
    1.物体检测的派系2.传统方法 3.基于锚框的物体检测算法4.无需锚框的物体检测算法 5.物体检测常用数据集   5.1通用物体检测数据集    ......