Dubbo框架

1:简介

Dubbo 是阿里巴巴公司开源的一个Java高性能优秀的服务框架

Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题

这是Dubbo官网的介绍,下面是我对这dubbo的理解

首先介绍下什么是RPC:

常见的单体架构:请求进来———》先到控制层————》控制层掉业务层(对外提供一个个完整的功能)————》业务层掉数据持久层,这些都是在一套系统里面

分布式服务架构下:控制层是一个单独的应用工程(A系统),业务层也是个单独的应用(B系统)

用户请求进到控制层,A系统去掉B系统里面的方法这个过程就叫RPC:远程过程方法调用

dubbo就是一个分布式服务框架实现了这个过程,实现这个过程的还框架有很多:

Motan(新浪微博开源的一个Java 框架)rpcx(Go语言生态圈的Dubbo, 比Dubbo更轻量)gRPC(Google开发的高性能、通用的开源RPC框架)thrift(Apache的一个跨语言的高性能的服务框架)

总结来说:

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,服务自动注册和发现

对了dubbo还可以和 Spring框架无缝集成

官网:

dubbo.apache.org

2:Dubbo高性能的原因

dubbo作为一个PRPC框架,主要干的就是远程过程(方法)调用,这个过程中最关键也是最耗时的两个方面:序列化和网络通信

序列化:

我们都知道本地对象要在网络上传输,必须要实现Serializable接口(序列化),序列化的方案有很多:xml、json、二进制流等等,其中效率最高的就是二进制流(因为计算机就是二进制的01010),dubbo采用的就是效率最高的二进制

网络通信:

不同于HTTP(SpringCloud采用的就是HTTP协议)需要七步走(三次握手和四次挥手),dubbo采用Socket通信(只需要知道ip,端口就可以建立长连接)一步到位,提升了通信效率,建立长连接(不需要反复连接)直接传输数据

3:Dubbo框架结构

Git Hub上的结构图:

通过这张结构图可以很好的理解dubb的框架结构:

从0到5梳理一遍:

0:从0开始,这个容器(Container)指的就是spring容器(前面说过Dubbo可以和 Spring框架无缝集成),当Spring容器启动加载的时候初始化服务的提供者(Provider),这个提供者就是业务层里的方法

1:将这个方法注册(register)到注册中心(注册过去的就是一个个服务的URL地址)

2:注册完成后,消费者(Consumer)订阅(subscribe)组测中心里提供者提供的服务,这个消费者可以理解为控制层(就是控制层调用业务层)

3:同时注册中心异步通知(notify)消费者消费提供者提供的服务

4:消费者拿到订阅的地址去调用(invoke)提供者提供的具体的方法(拿到URL去调用)

5:在容器初始化和消费者消费的时候都会异步通知监控中心记录(记录提供者提供哪些服务,消费者消费哪些服务,谁消费,谁提供)

对于我们使用dubbo框架,只需要关注上面的框架即可,监控中心由dubbo提供好了,不需要开发者去实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/162613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么说品牌低价不是一件好事

消费者货比三价为的是买到低价质优的产品,而网络电商平台的公开,也促进了消费者及品牌进行比价,那品牌低价一定就是好事吗,一定会拉高品牌销量吗。其实是不一定的,低价意味着成本的降低,也可能滋生很多产品…

【精选】改进的YOLOv5:红外遥感图像微型目标的高效识别系统

1.研究背景与意义 随着科技的不断发展,红外遥感技术在军事、安防、环境监测等领域中得到了广泛应用。红外遥感图像具有独特的优势,可以在夜间或恶劣天气条件下获取目标信息,因此在小目标检测方面具有重要的应用价值。然而,由于红…

专注短视频账号矩阵系统源头开发---saas工具

专注短视频账号矩阵系统源头开发---saas营销化工具,目前我们作为一家纯技术开发团队目前已经专注打磨开发这套系统企业版/线下版两个版本的saas营销拓客工具已经3年了,本套系统逻辑主要是从ai智能批量剪辑、账号矩阵全托管发布、私信触单收录、文案ai智能…

微服务实战系列之签名Sign

前言 昨日恰逢“小雪”节气,今日寒风如约而至。清晨的马路上,除了洋洋洒洒的落叶,就是熙熙攘攘的上班族。眼看着,暖冬愈明显了,叶子来不及泛黄就告别了树。变化总是在不经意中发生,容不得半刻糊涂。 上集博…

kubernetes 部署 spinnaker

spinnaker简介 Spinnaker 是一个开源、多云持续交付平台,它将强大而灵活的管道管理系统与主要云提供商的集成相结合。Spinnaker 提供应用程序管理和部署,帮助您快速、自信地发布软件变更。 Spinnaker 提供了两组核心的功能: 应用管理与应用程…

从根到叶:随机森林模型的深入探索

一、说明 在本综合指南中,我们将超越基础知识。当您盯着随机森林模型的文档时,您将不再对“节点杂质”、“加权分数”或“成本复杂性修剪”等术语感到不知所措。相反,我们将剖析每个参数,阐明其作用和影响。通过理论和 Python 实践…

Navicat 技术指引 | 适用于 GaussDB 的备份与还原功能

Navicat Premium(16.2.8 Windows版或以上) 已支持对 GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结构同步、协同合作、数据迁移等),这…

如何评估供应商协同平台的功能和性能

在制造业中,供应商协同平台是一种重要的工具,可以帮助企业与供应商建立更紧密的合作关系,提高采购效率,降低成本。而SRM系统是一种集成的供应链管理系统,可以协调和管理企业与供应商之间的业务关系,包括供应…

Sealos 云操作系统私有化部署教程

Sealos 私有云已经正式发布了,它为企业用云提供了一种革命性的新方案。Sealos 的核心优势在于,它允许企业在自己的机房中一键构建一个功能与 Sealos 公有云完全相同的私有云。这意味着企业可以在自己的控制和安全范围内,享受到公有云所提供的…

高通OTA升级方案介绍

高通OTA升级方案介绍 1. 高通LE OTA1.1 背景1.2 Recovery系统 2. SDX12 OTA方案3 OTA包的加密 3UK Penetration Test对于OTA升级也有严格的安全要求,下面是几条用例要求: Firmware: A sufficiently strong signing key MUST be in use. Signing keys MUS…

visionOS空间计算实战开发教程Day 6 拖拽和点击

在之前的学习中我们在空间中添加了3D模型,但在初始摆放后就无法再对其进行移动或做出修改。本节我们在​​Day 5​​显示和隐藏的基础上让我们模型可以实现拖拽效果,同时对纯色的立方体实现点击随机换色的功能。 首先是入口文件,无需做出改变…

Linux反弹SHell与检测思路

免责声明 文章仅做经验分享用途,利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担!!! 反弹shell payload在线生成 https://www.chinabaiker.com/Hack-Tools/ Online - Reverse Shell G…

Talk | UCSB博士生宋珍巧:基于人工智能的功能性蛋白质设计

本期为TechBeat人工智能社区第549期线上Talk。 北京时间11月22日(周三)20:00,UC Santa Barbara博士生—宋珍巧的Talk已准时在TechBeat人工智能社区开播! 她与大家分享的主题是: “基于人工智能的功能性蛋白质设计”,介绍了如何利用机器学习算…

itext - PDF模板套打

项目需求:获取列表数据之后直接将数据生成一个pdf。因此需要使用到 itext 对pdf进行直接操作。 环境配置 需要为pdf添加文字域,因此需要安装Adobe Acrobat 准备一个空的PDF文件,如果有现成的模板更好 依赖配置,我们使用itext的7版…

python数据结构与算法-14_树与二叉树

树和二叉树 前面我们讲了两种使用分治和递归解决排序问题的归并排序和快速排序,堆排序先就此打住,因为涉及到树的概念,所以我们先来讲讲树。 讲完了树之后后面我们开始介绍一种有用的数据结构堆(heap), 以及借助堆来实现的堆排序…

python命令行 引导用户填写ssh登录信息

字多不看,直接体验: 待补充 演示代码 # -*- coding:UTF-8 -*- """ author: dyy contact: douyaoyuan126.com time: 2023/11/23 9:20 file: 引导用户填写ssh接口信息.py desc: xxxxxx """# region 引入必要的依赖 impor…

【图像分类】基于深度学习的垃圾分类系统的设计与实现(ResNet网络,附代码和数据集)

写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。(专栏订阅用户订阅专栏后免费提供数据集和源码一份,超级VIP用户不在服务范围之内,不想订阅专栏的兄弟们可以私信…

el-table表格排序(需要后端判别),el-table导出功能(向后端发送请求)

&#xff08;1&#xff09;表格排序 &#xff08;2&#xff09;简单的table导出功能&#xff08;需要后台支撑&#xff09;必须要有iframe &#xff08;3&#xff09;页面所有代码&#xff1a; <template><div class"mainContainer"><el-form:model&…

使用Pytorch从零开始构建DCGAN

在本文中&#xff0c;我们将深入研究生成建模的世界&#xff0c;并使用流行的 PyTorch 框架探索 DCGAN&#xff08;生成对抗网络 (GAN) 的一种变体&#xff09;的实现。具体来说&#xff0c;我们将使用 CelebA 数据集&#xff08;名人面部图像的集合&#xff09;来生成逼真的合…

网络安全等级保护收费标准?

不同省份价格会略有不同&#xff0c;二级等保一般不低于5万元;三级等保不低于9万元&#xff0c;个别省份也可能7万也能办理&#xff0c;根据企业实际情况和省市选定的代理机构确定。 等级保护二级? 第二级等保是指信息系统受到破坏后&#xff0c;会对公民、法人和其他组织的合…