当前位置:网站首页>分布式理论
分布式理论
2022-07-13 17:54:00 【js同学你好】
什么是分布式系统?
分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务其目的是利用更多的机器,处理更多的数据。
分布式系统(distributed system)是建立在网络之上的软件系统
我们为什么要使用分布式系统
首先需要明确的是,只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升(加内存、加磁盘、使用更好的CPU)高昂到得不偿失的时候,应用程序也不能进一步优化的时候,我们才需要考虑分布式系统。
而由于分布式系统多节点、通过网络通信的拓扑结构,会引入很多单机系统没有的问题
初步了解Dubbo
随着互联网的发展,网站规模增大,当前的架构已经无法满足和应对分布式服务架构以及流动计算架构势在必行
单一应用架构
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。
适用于小型网站,小型管理系统,将所有功能都部署到一个功能里,简单易用性能扩展比较难
协同开发问题 不利于升级维护。
垂直应用架构
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。
通过切分业务来实现各个模块独立部署,降低了维护和部署的难度,团队各司其职更易管理,性能扩展也更方便,更有针对性。缺点:公用模块无法重复利用,开发性的浪费
分布式服务架构
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。
流动计算架构
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)[ Service Oriented Architecture]是关键
RPC【Remote Procedure Call】是指远程过程调用,是一种进程间通信方式,他是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。为什么要用RPC呢?就是无法在一个进程内,甚至一个计算机内通过本地调用的方式完成的需求,比如不同的系统间的通讯,甚至不同的组织间的通讯,由于计算能力需要横向扩展,需要在多台机器组成的集群上部署应用。RPC就是要像调用本地的函数一样去调远程函数;

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


zookeeper下载
链接:https://pan.baidu.com/s/1MQPQVUHD_FDkUNPmN6uc-Q
提取码:wpru

测试连接



下载dubbo-admin
地址 :https://github.com/apache/dubbo-admin/tree/master
在项目目录下打包dubbo-admin
mvn clean package -Dmaven.test.skip=true

因为这是一个前后端分离的项目所以我们应该将前端的项目npm install 一下再 npm run dev 才能够访问到前端的可视化界面

边栏推荐
- 【Multisim】关于Multisim仿真“运放积分器”出现的问题以及解决方法
- #导入Word文档图片# 根文件系统制作与挂载
- 3.6格式化数字和字符串
- 【STM32F1】驱动DHT11(CubeMX配置)(HAL库)
- Chapter 4 stm32+ld3320+syn6288+dht11 realize voice acquisition of temperature and humidity values (Part 1)
- 宝塔面板在同一服务器下创建多个端口部署项目(轻量应用服务器一键部署网站、博客、GltLab完整版)
- 嵌入式软件开发 STM32F407 蜂鸣器 标准库版
- notepad++打开bin文件
- 【Multisim】关于Multisim仿真“过零比较器”出现的问题以及解决方法
- CodeBlocks快捷键
猜你喜欢

蓝桥杯嵌入式-HAL库-LED_TEST

ArkUI路由跳转概览

Chapter I use of DHT11 temperature and humidity sensor

【 pcb】 quelques expériences sur la conception du matériel et le dessin des PCB dans le jeu électrique (mise à jour continue)

如何将电子签名透明化处理

vant Weapp组件库中 自定义修改van-button 按钮宽高大小

【Verilog】子模块连接相关问题(加法器及其优化)

Blue Bridge Cup embedded Hal library LED_ TEST

Chapter III use of ld3320 speech recognition module

01kNN_Regression
随机推荐
[Go语言入门] 07 Go语言字符串
[matlab] matlab lesson 2 - preliminary drawing
go语言json解析库jsoniter的使用(替换标准库encoding/json)
Embedded software development stm32f407 key input standard library version
01机器学习:评估指标
IIC通讯
【STM32F1】驱动DHT11(CubeMX配置)(HAL库)
嵌入式软件开发 STM32F407 按键输入 标准库版
Win10安装程序提示“不能打开要写入的文件xxxxx”如何解决
STM32 uses a simple method to control many lights to achieve the effect of flowing water
DHT11和DHT22(AM2302)比较及使用方法
The use of gy-53 infrared laser ranging module and the realization of PWM mode code
【Multisim】关于Multisim仿真“过零比较器”出现的问题以及解决方法
Summary of working methods
[HBuilderX开发uniapp]自动代码格式化插件安装及配置
嵌入式软件开发 STM32F407 跑马灯 标准库版
(VSCode+anaconda解决CommandNotFoundError: Your shell has not been properly configured to use ‘conda ac
ROS 通信机制
使用Idea IntelliJ查看字节码文件
嵌入式软件开发 STM32F407 蜂鸣器 寄存器版