学习Dubbo前你要了解这些

文章目录

    • 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.mzph.cn/news/5232.shtml

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

相关文章

关系型数据库设计规则

目录 1.1 表、记录、字段 1.2 表的关联关系 1.2.1 一对一关联(one-to-one) 1.2.2 一对多关系(one-to-many) 1.2.3 多对多(many-to-many) 1.2.4 自我引用(Self reference) 关系…

知识图谱推理的学习逻辑规则(上)7.19+(下)7.20

知识图谱推理的学习逻辑规则 摘要介绍相关工作模型 (7.20)知识图谱推理逻辑规则概率形式化参数化规则生成器具有逻辑规则的推理预测器 优化E步骤M步骤 实验实验设置实验结果 总结 原文: 摘要 本文研究了在知识图谱上进行推理的学习逻辑规则…

Idea中使用Git详细教学

目录 一、配置 Git 二、创建项目远程仓库 三、初始化本地仓库 方法一: 方法二: 四、连接远程仓库 五、提交与拉取到本地仓库 六、推送到远程仓库 七、克隆远程仓库到本地 方法一: 方法二: 八、Git分支操作 一、配置 G…

zabbix 企业级监控(2) 监控linux主机

目录 配置开始 Zabbix添加linux主机 4.为agent.zabbix.com添加模板 环境: (隔天做的更换了IP,不影响实际操作) IP 192.168.50.50 关闭防火墙规则 更改主机名 [rootlocalhost ~]# vim /etc/hostname agent.zabbix.com [rootloca…

Zookeeper集群 + Kafka集群

Zookeeper集群 Kafka集群 前言一、Zookeeper 概述1.1 Zookeeper 定义1.2 Zookeeper 工作机制1.3 Zookeeper 特点1.4 Zookeeper 数据结构1.5 Zookeeper 应用场景1.5.1 统一命名服务1.5.2 统一配置管理1.5.3 统一集群管理1.5.4 服务器动态上下线1.5.5 软负载均衡 1.6 Zookeeper …

Pycharm安装dlib

目录 一、下载dilb 二、使用pip安装dlib库(亲测有效) 三、使用Pycharm安装(未使用) 一、下载dilb 官方网址:德利卜 皮皮 (pypi.org) 二、使用pip安装dlib库(亲测有效) 将下载好的whl文件放入工程文件中 接下来使用Python自带的pip进行安装 1.winR2.输入cmd,回车…

Word 插件实现读取excel自动填写

日常工作中碰到需要将EXCEL的对应数据记录填写到word文档对应的位置,人工操作的方式是: 打开exel表—>查找对应报告号的行—>逐列复制excel表列单元格内容到WORD对应的位置(如下图标注所示) 这种方法耗时且容易出错。实际上…

听GPT 讲K8s源代码--pkg(三)

在 Kubernetes 项目中,pkg/controller目录下的子目录通常包含控制器相关的代码和逻辑。控制器是 Kubernetes 中用于管理资源的核心组件之一。它们负责监控资源的状态,并确保其符合所定义的期望状态。下面是对这些子目录的一些常见作用的解释:…

C++:这门语言优势在哪?命名空间以及缺省参数?

文章目录 C的优势解决命名空间的问题 缺省参数 C的优势 C和C语言比起来有许多优势&#xff0c;这里我们先举一个例子&#xff0c;后续进行补充 解决命名空间的问题 首先看这样的代码&#xff1a; #include <stdlib.h> #include <stdio.h>int rand 0;int main(…

【六袆 - windows】windows计划任务,命令行执行,开启计划任务,关闭计划任务,查询计划任务

windows计划任务 查看 Windows 自动执行的指令取消 Windows 中的计划任务启动执行计划任务 查看 Windows 自动执行的指令 您可以使用以下方法&#xff1a; 使用任务计划程序&#xff1a;任务计划程序是 Windows 内置的工具&#xff0c;可以用于创建、编辑和管理计划任务。您可…

Django实现接口自动化平台(十)自定义action names【持续更新中】

相关文章&#xff1a; Django实现接口自动化平台&#xff08;九&#xff09;环境envs序列化器及视图【持续更新中】_做测试的喵酱的博客-CSDN博客 深入理解DRF中的Mixin类_做测试的喵酱的博客-CSDN博客 python中Mixin类的使用_做测试的喵酱的博客-CSDN博客 本章是项目的一…

职责链(Chain of responsibility)模式

目录 处理过程应用场景参与者协作效果实现相关模式应用与思考类图 职责链(Chain of responsibility)是一种对象行为模式&#xff0c;可以使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链&#xff0c;并沿着这条链传递…

[ 容器 ] Docker 基本管理

目录 一、Docker 概述1.1 Docker 是什么&#xff1f;1.2 Docker 的宗旨1.3 容器的优点1.4 Docker 与 虚拟机的区别1.5 容器在内核中支持的两种技术namespace的六大类型 二、Docker核心概念2.1 镜像2.2 容器2.3 仓库 三、安装 Docker四、docker 镜像操作五、 Docker 容器操作总结…

经济和行政手段使双高企业降低能耗总量和能耗强度,提高能源利用效率-安科瑞黄安南

摘要 2022年6月29日工信部、发改委、财政部、生态环境部、国资委、市场监管总局六部门联合下发《关于印发工业能效提升行动计划的通知》&#xff08;工信部联节〔2022〕76号&#xff0c;以下简称《行动计划》&#xff09;&#xff0c;主要目的是为了提高工业领域能源利用效率&…

修复git diff正文中文乱码

Linux git diff正文中文乱码 在命令行下输入以下命令&#xff1a; $ git config --global core.quotepath false # 显示 status 编码 $ git config --global gui.encoding utf-8 # 图形界面编码 $ git config --global i18n.commit.encoding utf-8 # …

Ubuntu18.04 拯救者R9-7945HX 4060 配置ZED 2i代双目相机驱动+ORBSLAM2

AMD的拯救者网卡很拉&#xff0c;研究了很久除了换网卡可以解决网络问题&#xff0c;其它没找到合适的办法&#xff0c;这里我用手机USB共享网络的方式勉强上网&#xff0c;这里不得不说华为的信号桥很好用。 之前在1050ti的电脑上布置过&#xff0c;很顺利&#xff0c;这个新…

原生js实现将图片内容复制到剪贴板

核心代码 /*复制图片*/ copyImg(dom) {/* 警告&#xff1a;dom不能是img标签&#xff0c;建议用DIV标签包裹img标签&#xff0c;否者会报错&#xff01;不支持复制背景图&#xff01; */dom.style.userSelect auto;let selection getSelection(), range document.createRan…

大模型开发(五):实现Jupyter本地调用OpenAI API

全文共3000余字&#xff0c;预计阅读时间约15分钟 | 满满干货&#xff0c;建议收藏&#xff01; 大模型开发(五)&#xff1a;实现Jupyter本地调用OpenAI API OpenAI作为本轮大语言模型技术进步的先驱&#xff0c;其系列大型模型在效果上一直保持着领先。其推出的各类模型如文本…

springboot第30集:springboot集合问题

Logstash Logstash 是开源的服务器端数据处理管道&#xff0c;能够同时从多个来源采集数据、格式化数据&#xff0c;然后将数据发送到es进行存储。 ElasticSearch Elasticsearch 是基于JSON的分布式搜索和分析引擎&#xff0c;是利用倒排索引实现的全文索引。 KibanaKibana 能够…

数字化时代,如何做好用户体验与应用性能管理​

引言 随着数字化时代的到来&#xff0c;各个行业的应用系统从传统私有化部署逐渐转向公有云、行业云、微服务&#xff0c;这种变迁给运维部门和应用部门均带来了较大的挑战。基于当前企业 IT 运维均为多部门负责&#xff0c;且使用多种运维工具&#xff0c;因此&#xff0c;当…