学习Dubbo前你要了解这些

news2024/11/24 5:19:10

文章目录

    • Dubbo的发展背景
      • 单一应用架构
      • 垂直应用架构
      • 分布式服务架构
      • 流动计算架构
    • RPC
      • RPC的简单原理
    • Dubbo
      • Dubbo是什么
      • Dubbo作者
      • Dubbo的发展历程
      • Dubbo架构

Dubbo发音: |ˈdʌbəʊ|

Dubbo官方网站:http://dubbo.apache.org/

Dubbo是阿里巴巴开发的,已经贡献给Apache,并且已经成Apache的顶级开源项目

在这里插入图片描述

Dubbo的发展背景

​ 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。

在这里插入图片描述

单一应用架构

​ 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。

​ 此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。

​ 使用一个web容器(如tomcat),然后使用Servlet/JSP技术,最后选择一个合适数据库管理系统来存储数据(MySQL、Oracle)。

垂直应用架构

​ 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的几个应用,以提升效率。

​ 此时,用于加速前端页面开发的Web框架(MVC)是关键。

​ 用户系统、权限系统、商品系统、订单系统、物流系统…

特点:系统独立部署,每一个系统都有完整的前后端;

问题:各个系统无法做到完全独立,公共模块无法复用,系统之间通信比较麻烦;

分布式服务架构

​ 当垂直应用越来越多,应用之间交互不可避免,这时将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。

​ 此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。

分布式架构的难点

  1. 各个系统如何进行远程调用
  2. 如何进行业务拆分

流动计算架构

​ 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。

RPC

​ RPC(Remote Procedure Call)- 远程过程调用,它是一种通过网络从远程计算机程序上请求服务,不需要了解底层的网络技术协议。RPC假定某种传输协议的存在(如TCP),为通信程序携带数据;

​ 通俗的说,RPC可以让我们像调用本地方法一样调用远程计算机提供的服务;

RPC的简单原理

在这里插入图片描述

  1. 客户端以本地调用的方式调用远程服务
  2. client stub接收到调用后,将方法、参数等组装成能够进行网络传输的消息;
  3. client stub查找服务地址,找到之后,将消息发送到服务端;
  4. server stub收到消息之后,对收到的消息进行解码;
  5. server stub根据解码结果,使用反射的方式调用本地服务;
  6. 服务端执行完成之后将结果返回给Server stub;
  7. server stub将返回结果打包成消息并发送给客户端;
  8. client stub收到消息后,对结果进行解码;

总结:

  • 客户端和服务端需要有网络连接
  • 传输的消息需要序列化

Dubbo

Dubbo是什么

​ Apache Dubbo™ 是一款高性能Java RPC框架

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

Dubbo作者

在这里插入图片描述

​ 从左至右:刘超,梁飞,闾刚,陈雷,刘昊旻,李鼎

Dubbo的发展历程

​ 2008年阿里内部开始使用;
​ 2009年初,发布1.0版本;
​ 2010年初,发布2.0版本;
​ 2011年10月27日,阿里将Dubbo开源,版本号为2.0.7;
​ 2012年3月,发布2.1.0版本;
​ 2014年10月,发布2.3.11版本,之后版本停滞;
​ 2017年9月,阿里重启维护,重点升级了依赖的JDK版本,发布2.5.4/2.5.5版本;
​ 2017年10月,发布2.5.6版本;
​ 2017年11月,发布2.5.7版本,后期集成了SpringBoot;
​ 2014年10月的时候,当当网Fork了Dubbo源代码,在此基础上增加了HTTP REST协议,发布版本号2.8.0,名字叫DubboX;
​ 网易考拉在Dubbo基础上开发了DubboK;

Dubbo架构

. 架构中的角色

Provider:服务提供者
Consumer:服务消费者
Registry:服务注册和发现的中心
Monitor:监控中心,用于统计服务调用情况
Container:Dubbo容器

在这里插入图片描述

. 调用关系

0、容器负责启动、加载、运行服务提供者、消费者;

1、服务提供者在启动时,向注册中心注册自己提供的服务;

2、服务消费者在启动时,向注册中心订阅自己需要的服务;

3、注册中心返回服务提供者的地址列表给消费者;如果有服务变更(服务的上线或下线),注册中心会基于长连接的方式推送变更给消费者;

4、服务消费者从地址列表中,基于软件负载均衡算法,选择一个服务提供者进行调用,如果调用失败,可以重试其它提供者;

5、服务消费者和提供者,在内存中累计调用时间和调用次数,每分钟向监控中心发送一次统计数据;
4、服务消费者从地址列表中,基于软件负载均衡算法,选择一个服务提供者进行调用,如果调用失败,可以重试其它提供者;

5、服务消费者和提供者,在内存中累计调用时间和调用次数,每分钟向监控中心发送一次统计数据;

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

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

相关文章

【Linux系统】结合有趣的小故事让你学懂生产者消费者模型

目录 由故事引入模型故事背景供货商们的矛盾市民们和供货商之间的矛盾一市民们和供货商之间的矛盾二市民们的矛盾模型总结 生产者消费者模型为什么要使用生产者消费者模型?生产者消费者模型的特点生产者消费者模型优点 基于BlockingQueue的生产者消费者模型C queue模…

含CPU芯片的PCB可制造性设计问题详解

CPU是中央处理器,Central Processing Unit 英文的缩写,电脑中一个最重要,最核心的东西,相当一个人的大脑,是用来思考、分析和计算的。目前市面上比较常见的CPU来自两个品牌,一个是intel公司生产的&#xff…

电脑数据恢复:恢复Windows中永久删除的文件

什么是数据恢复及其工作原理? 一般来说,数据恢复是从内部和外部硬盘、固态硬盘、USB、SD卡和其他辅助存储设备中恢复无法访问、删除、丢失、损坏的数据的过程。 删除文件后,你的Windows操作系统会自动将不需要的文件保存到回收…

Windows系统中数据标注软件LabelImg的安装和基本使用

文章目录 前言安装LabelImgLabelImg基本使用LabelImg支持的快捷键相关链接 前言 LabelImg是国立台湾大学(National Taiwan University)的Tzuta Lin主导完成,并基于免费软件许可MIT LICENSE发布在github上的一款计算机视觉(Comput…

Ansible自动化运维工具的认识

目录 一、Ansible概述 二、Ansible特点 三、Ansible应用 1、使用者 2、Ansible工具集合 3、作用对象 四、Ansible的搭建 1、实验环境 2、环境准备 Ansible: 3、创建ssh免密交互登录 client端环境准备 五、Ansible配置 六、Ansible命令 1、ansible 实…

【C++ 重要知识点总结】表达式

表达式 1 基础 组合运算 优先级结合律 类型转换 运算符重载 左值和右值 2 算数运算符 3 逻辑和关系运算法 短路求值 逻辑与,当第一个判定为否的时候,不再执行第二个判定,可以用来屏蔽第二步的计算,代替条件判断&#xff0…

为什么很多公司都开始使用Go语言了?

越来越多的互联网大厂开始使用Go语言了,譬如腾讯、美团、滴滴、百度、Google、bilibili... 还有最初使用Python的字节跳动,甚至已经全面拥向Go了。这么多国内外首屈一指的公司,都在开始使用它了,它到底有什么优势呢?这…

03.MySQL——索引和事务

索引 索引的概念 索引可以提高数据库的性能。不用加内存,不用改程序,不用调sql,只要执行正确的 create index ,查询速度就可能提高成百上千倍。但是查询速度的提高以插入、更新、删除的速度为代价。索引的价值在于提高一个海量数…

SOT封装特点和优势,sot23封装尺寸

SOT封装是一种常用的集成电路封装类型,常见的SOT封装类型包括3引脚(如SOT-23)、4引脚(如SOT-89和SOT-223)和6引脚(如SOT-363),可以适应不同的电路设计和功能要求。具有以下特点和优势…

Springboot配置相关问题

目录 一.ConfigurationProperties注解补充知识: 二、松散绑定三、常用计量单位的应用四、数据校验补充知识 一.ConfigurationProperties注解 使用该注解可以为Bean绑定application.yml中的属性值。以下就是使用ConfigurationProperties注解的示例 项目结构 Serve…

Halcon机器视觉-15种常用缺陷检测实例

一、Halcon 15种常用缺陷检测实例分享 缺陷检测是一种通过计算机视觉技术来检测产品制造过程中的缺陷的方法。该技术可以检测出产品表面的缺陷,如裂纹、凹陷、划痕、气泡等,并且可以实时监测和诊断制造过程中的问题。在制造业中,机器视觉缺陷…

spring复习:(45)使用TransactionProxyFactoryBean来实现事务时,发生异常时,事务是怎么回滚的?

TransactionAspectSupport类: invokeWithinTransaction方法发生异常时会调用completeTransactionAfterThrowing protected void completeTransactionAfterThrowing(Nullable TransactionInfo txInfo, Throwable ex) {if (txInfo ! null && txInfo.getTrans…

Java Mybatis拓展03

0目录 1.MyBatis当实体类和数据库字段名不对应 2.多表查询 1.MyBatis当实体类和数据库字段名不对应 方法2 测试 多表查询 加入子标签association 模糊查询 加入Address 对象 三表联查 2.五表联查 测试

微服务Day3——Nacos配置管理\Feign远程调用\Gateway网关

一、Nacos配置管理 1、统一配置管理 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有实例的配置。 Nacos一方面可以将配置集中管理…

朝花夕拾 - 2023 精神错乱记录

jsliang 的精神错乱记录,一点 2023 小思考。 也许我们曾偏离航道,但请不要放弃抵达终点 前言 在 2020.11 过来珠海,来到金山工作 2 年半的时间里: 在工作上,更换了 3 个小团队,达到了每年一换在工作上&…

我国版式文档格式OFD前端WEB展示之EasyOFD

EasyOFD an ofd file web shower 一个在web端展示ofd文件的控件,该控件基于CANVAS绘制。 该控件使用了以下外部程序 1)jszip:解决解压文件。 2)x2js: 解决XML文件到JS转换 3)easyjbig2: 解决ofd内部使用jb2文件存储的…

A Survey on Time-Series Pre-Trained Models

本文是LLM系列的文章,针对《A Survey on Time-Series Pre-Trained Models》的翻译。 时间序列预训练模型综述 摘要1 引言2 背景2.1 时间序列挖掘任务2.1.1 时间序列分类2.1.2 时间序列预测2.1.3 时间序列聚类2.1.4 时间序列异常检测2.1.5 时间序列推测 2.2 深度学习…

手打 小份 kubernetes v1.27.3 集群

文章目录 1. 准备2. yum3. 安装 ansible4. 互信5. hosts6. 关闭防火墙、swap、selinux7. 配置系统文件句柄数8. 启用ipvs9. 修改内核参数10. 安装 containerd11. 安装nerdctl12. kubernetes yum13. 部署 kubernetes13.1 安装工具13.2 初始化配置 14. 部署 master15. 部署 node1…

【微信机器人开发

现在并没有长期免费的微信群机器人,很多都是前期免费试用,后期进行收费,或者核心功能需要付费使用的。 这时如果需要群机器人帮助我们管理群聊,建议大家使有条件的可以自己开发微信管理系统。了解微信群机器人的朋友都知道&#x…

iTerm复制粘贴出现00~ 01~

问题 iTerm2中复制粘贴出现如下现象 解决 命令行直接输入printf \e[?2004l 回车