分布式系统架构解决方案—Dubbo

news2024/9/23 23:23:37

文章目录

    • 什么是分布式系统?
    • 系统架构
    • Dubbo简介
    • RPC的概念
    • dubbo节点角色
    • dubbo节点调用关系
    • Dubbo 安装管理端
    • Dubbo-监控统计中心

什么是分布式系统?

  1. “分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”
  2. 分布式系统(distributed system)是建立在网络之上的软件系统。简单来说:多个(不同职责)人共同来完成一件事!

系统架构

单一应用架构

  1. 当系统开支很小时,只需要一个应用,将所有的功能部署到一起(所有业务都放在一个tomcat里),从而减少部署节点和成本;
  2. 此时,用于简化 增删改查 工作量的数据访问框架 (ORM)是关键,ORM:对象关系映射(Object Relational Mapping)

在这里插入图片描述

  1. 单一架构的优点: 小项目开发快 成本低,架构简单 ,易于开发和测试
  2. 单一架构的缺点:大项目模块耦合严重,不易开发,维护,核心业务与边缘业务混合在一块,出现问题互相影响,新增业务困难

垂直应用架构

  1. 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成几个互不相干的几个应用,以提高效率;
  2. 大模块按照mvc分层模式,进行拆分成多个互不相关的小模块,并且每个小模块都有独立的服务器
  3. 此时,用于加速前端页面开发的web框架(MVC)是关键;因为每个小应用都有独立的页面
    在这里插入图片描述
  4. MVC:模型视图控制器 (Model View Controller)
  5. 垂直应用架构的缺点:模块之间不可能完全没有交集,公用模块无法重复利用。

分布式服务架构

  1. 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的业务,逐渐形成稳健的服务中心,使前端应用能更快速的响应
  2. 此时,用户提高业务复用及整合的分布式服务框架(RPC)远程调用是关键

在这里插入图片描述

  1. RPC:独立的应用服务器之间,要依靠RPC(Romote Procedure Call)才能调用

流动计算架构

  1. 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐呈现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率;
  2. 此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键;在这里插入图片描述
  3. SOA:面向服务架构(Service-Oriented Architecture),简单理解就是“服务治理”,例如:公交车站的“调度员”

Dubbo简介

  1. Dubbo是分布式服务框架,是阿里巴巴的开源项目,现交给apache进行维护
  2. Dubbo致力于提高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案

RPC的概念

  1. RPC【Remote Procedure Call】是指远程过程调用,是一种进程间通信方式
  2. RPC基本的通信原理
    1. 在客户端将对象进行序列化
    2. 底层通信框架使用netty(基于tcp协议的socket),将序列化的对象发给服务方提供方
    3. 服务提供方通过socket得到数据文件之后,进行反序列化,获得要操作的对象
    4. 对象数据操作完毕,将新的对象序列化,再通过服务提供方的socket返回给客户端
    5. 客户端获得序列化数据,再反序列化,得到最新的数据对象,至此,完成一次请求
      在这里插入图片描述

dubbo节点角色

在这里插入图片描述

节点角色说明
Provider服务的提供方
Consumer服务的消费方
Registry服务注册与发现的注册中心
Monitor监控服务的统计中心
Container服务运行容器

dubbo节点调用关系

  1. 服务容器负责启动,加载,运行服务提供者;
  2. 服务提供者在启动时,向注册中心注册自己提供的服务;
  3. 服务消费者在启动时,向注册中心订阅自己所需的服务;
  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者;
  5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用;
  6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心;

Dubbo 安装管理端

  1. 修改配置文件 application.properties
    在这里插入图片描述
    在这里插入图片描述
  2. 在dubbo-admin目录,使用Maven打包:mvn clean package
  3. 运行target目录中的jar文件:D:\dubbo-admin-master\dubbo-admin\target>java -jar dubbo-admin-0.0.1-SNAPSHOT.jar
    在这里插入图片描述
  4. 打开浏览器:访问:http://localhost:7001/ 账号密码 root root;

在这里插入图片描述

Dubbo-监控统计中心

  1. 修改dubbo-monitor-simple-2.5.3,conf\dubbo.properties
    在这里插入图片描述

在这里插入图片描述

  1. 运行 bin\start.bat,打开Dubbo监控中心

在这里插入图片描述
在这里插入图片描述

  1. 访问地址 :http://localhost:8080/在这里插入图片描述

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

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

相关文章

第一次创业,注册什么类型的公司更好?

前言 几乎每一个打工者都有一颗当老板的心,大喊一声:"大丈夫生居天地间,岂能郁郁久居人下",于是一拍桌子就辞职创业,现实往往都是潦草收场,看下面一段统计数据: 中国小微企业平均存活周期4.13年&…

2023牛客寒假算法基础集训营4(10/13)

清楚姐姐学信息论数学&#xff0c;只需要求x的y次方和y的x次方那个大选哪个&#xff0c;除了2和3时是3多&#xff0c;其他情况都是数越小能代表的数越多AC代码&#xff1a;#include <bits/stdc.h> using namespace std; using LL long long; int main() {ios::sync_with…

7年老码农,平凡的2022

前言 嗨&#xff0c;大家好&#xff0c;我是希留。一个被迫致力于成为一名全栈开发的菜鸟。 2022年对于大多数人而言是难忘的一年&#xff0c;受疫情影响、经历行业寒冬。裁员、失业等情况总是笼罩着本就焦虑不安的生活。 而我的2022&#xff0c;用一个关键词就可以概括&…

超大功率远程应急广播系统(大功率扬声器的应用)

系统概述 1、接收控制系统框图 超大功率远程应急广播系统是针对应急广播研发的一套通信系统&#xff0c;其接收控制系统框图如图&#xff08;1&#xff09;所示&#xff1a; 2、发射系统框图 发射系统框图如图&#xff08;2&#xff09;所示。 3、接收控制系统功能 接收控制…

【Spring源码】自动注入·名称:autowireByName()详解

进入方法autowireByName()首先调用了unsatisfiedNonSimpleProperties()方法进行属性过滤unsatisfiedNonSimpleProperties()其中PropertyDescriptor是JavaBean通过存储器导出一个的一个属性&#xff0c;用于获取bw的所有属性描述对象&#xff0c;遍历获取到的属性描述对象&#…

快鲸智慧楼宇:为楼宇智慧化、物联化、可视化、数字化运营赋能

根据国际数据公司(IDC)发布的《全球半年度智慧城市支出指南》显示&#xff0c;2023年全球智慧城市支出预计将达到1894.6亿美元&#xff0c;其中中国市场规模将达到389.2亿美元。这意味着2023年&#xff0c;建设智慧城市是世界各地许多城市的发展战略之一。智慧楼宇作为智慧城市…

二叉树(三)

我们之前对树和二叉树有了基本的了解&#xff0c;然后我们进一步对二叉树的性质进行分类。小伙伴们如果有疑问或者感兴趣的可以看一下我之前写的两篇博客。二叉树&#xff08;一&#xff09;&#xff1a;二叉树&#xff08;一&#xff09;_染柒_GRQ的博客-CSDN博客二叉树&#…

一文读懂卫星导航测量天线

1957年10月4日&#xff0c;前苏联发射了第一颗人造地球卫星&#xff0c;第二年&#xff0c;美国便启动了第一代卫星导航系统——子午仪卫星导航系统的研制。经过几十年的发展&#xff0c;全球各类航天器发射活动日益增多&#xff0c;全球卫星导航卫星系统&#xff08;GNSS&…

【go语言udp分析】

go语言udp分析serverclientudp相等于tcp来说是不可靠的协议&#xff0c;当然优点就是速度快&#xff0c;相对于包的首部来说比较小。然后接下来看一下对应的实现server package mainimport ("fmt""net" )// UDP服务端配置 func main() {//1:启动监听liste…

2023年中高级前端养成指南-需要关注和学习的13大类80余个前端技术栈与前端趋势-看这篇就够了系列

今天是兔年开工的第一个星期一&#xff0c;我们又要投入到忙碌的工作了。 以下是imqdcn研究整理的2023年中高级前端养成指南&#xff0c;收藏起来&#xff0c;从开工第一天起&#xff0c;立下全新的计划和目标&#xff0c;愿你在兔年大展宏兔&#xff0c;扬眉兔气。 文章目录一…

【SpringCloud】Sentinel的基础概念及使用

一、雪崩问题1.问题描述微服务中&#xff0c;服务间调用关系错综复杂&#xff0c;一个微服务往往依赖于多个其它微服务。如果服务提供者I发生了故障&#xff0c;当前的应用的部分业务因为依赖于服务I&#xff0c;因此也会被阻塞。此时&#xff0c;其它不依赖于服务I的业务似乎不…

SAP 实施新的金融工具 IFRS17规则解析

在实施新的金融工具 IFRS 规则的过程中&#xff0c;保险公司现在看到了保险负债的新标准。经过多年的长期讨论&#xff0c;IASB 于 2016 年 11 月承诺在 2021 年 1 月 1 日生效&#xff0c;并明确表示不会考虑进一步推迟法规的通过日期。由于有必要将 2020 年作为比较期&#x…

[思考进阶]05 人与人之间的差距,在于“自律”

除了要提升自己的技术能力&#xff0c;思维的学习和成长也非常非常重要&#xff0c;特推出此[思考进阶]系列&#xff0c;进行刻意练习&#xff0c;从而提升自己的认知。 我认识两个成功的长者。 其中有一个人&#xff0c;每天记录当天的重要事项&#xff0c;比如今天和谁签了什…

英语学习 1

1 词汇积累 1、evolution 进化、发展 2、work efficiency 工作效率 3、material 物质的、非精神上的 4、mental 精神的 5、concern 担忧 6、physical contact 身体接触 7、imply 暗示 8、interpersonal relationships 人际关系 9、indifference 漠不关心 10、depression 抑郁 …

【八大数据排序法】冒泡排序法的图形理解和案例实现 | C++

第十四章 冒泡排序法 目录 第十四章 冒泡排序法 ●前言 ●认识排序 ●一、冒泡排序是什么&#xff1f; 1.简要介绍 2.具体情况 3.算法分析 ●二、案例实现 1.案例一 2.案例二 ●总结 前言 排序算法是我们在程序设计中经常见到和使用的一种算法&#xff0c;它…

在线支付系列【10】微信支付接入前准备

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 文章目录前言1. 获取基本参数商户号&#xff08;mchid&#xff09;应用ID&#xff08;appid&#xff09;绑定商户号和应用ID2. 配置API v3密钥3. 下载并配置商户API证书3.1 简介3.2 生成证书串3.3 获得商…

卷积神经网络CNN :1.基础知识

​卷积神经网络是一种深度学习概念&#xff0c;专为处理图像而构建。机器学习是计算机从过去的经验中学习的概念。深度学习是机器学习的高级部分。CNN 旨在寻找视觉模式。 当我们人类看到图像时&#xff0c;我们看到物体、颜色等。我们在成长过程中学习这些东西&#xff0c;但计…

CRPS:贝叶斯机器学习模型的评分函数

连续分级概率评分&#xff08;Continuous Ranked Probability Score, CRPS&#xff09;或“连续概率排位分数”是一个函数或统计量&#xff0c;可以将分布预测与真实值进行比较。 机器学习工作流程的一个重要部分是模型评估。这个过程本身可以被认为是常识&#xff1a;将数据分…

【CLYZ集训】变量取值【网络流】

思路&#xff1a; 容易把答案转化为∑siwi∑ti(wx−wy)\sum{s_iw_i}\sum{t_i(w_x-w_y)}∑si​wi​∑ti​(wx​−wy​)&#xff0c;然后我们设初始代价为−∑∣si∣wi-\sum{|s_i|w_i}−∑∣si​∣wi​&#xff0c;然后考虑建模。 如果Si大于0&#xff0c;则源点向i连一条流量为2…

【Java AWT 图形界面编程】FileDialog 对话框 ( 打开文件 | 保存文件 | 构造函数 | 获取文件路径 | 获取文件名称 | 代码示例 )

文章目录一、FileDialog 对话框1、构造函数2、获取文件路径3、获取文件名称二、FileDialog 对话框代码示例一、FileDialog 对话框 在开发时 , 经常遇到文件相关操作 , 如 : 选择文件 , 保存文件 等 , 在 AWT 中使用 FileDialog 文件对话框 实现上述功能 ; 1、构造函数 FileDial…