当前位置: 首页 > news >正文

L3上云01 | 分布式、微服务概念

文章目录

  • 什么是分布式,分布式和集群的区别又是什么?
    • 1. 什么是分布式 ?
    • 2. 分布式与集群的区别 ?
      • 分布式
      • 集群
    • 3. 分布式环境下面临的问题
    • 4. 常见的分布式系统
    • 5. 什么是微服务架构?
      • S0A 架构
      • 微服务

什么是分布式,分布式和集群的区别又是什么?

1. 什么是分布式 ?

分布式系统一定是由多个节点组成的系统。

其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的。

这些连通的节点上部署了我们的节点,并且相互的操作会有协同。

分布式系统对于用户而言,他们面对的就是一个服务器,提供用户需要的服务而已,

而实际上这些服务是通过背后的众多服务器组成的一个分布式系统,因此分布式系统看起来像是一个超级计算机一样。

所谓分布式系统,是指一个完整的应用系统被拆分后,分别部署到不同的网络节点中,这样的系统往往是一些大型的系统。这种做法的好处是,可以提高系统的运算能力。与分布式系统相对应的就是 单体应用系统,单体应用系统的思想是all in one 思想, 就是全部在一起,一个系统的全部服务都集中在一个网络节点上。
在这里插入图片描述

2. 分布式与集群的区别 ?

集群

集群是指在几个服务器上部署相同的应用程序来分担客户端的请求。

它是同一个系统部署在不同的服务器上,比如一个登陆系统部署在不同的服务器上。

好比 多个人一起做同样的事。

集群主要的使用场景是为了分担请求的压力。

但是,当压力进一步增大的时候,可能在需要存储的部分,比如mysql无法面对大量的“写压力”。

因为在mysql做成集群之后,主要的写压力还是在master的机器上,其他slave机器无法分担写压力,这时,就引出了“分布式”。

分布式

分布式是指多个系统协同合作完成一个特定任务的系统。

它是不同的系统部署在不同的服务器上,服务器之间相互调用。

好比 多个人一起做不同的事。

分布式是解决中心化管理的问题,把所有的任务叠加到一个节点处理,太慢了。

所以把一个大问题拆分为多个小问题,并分别解决,最终协同合作。

分布式的主要工作是分解任务,把职能拆解。

分布式的主要应用场景是单台机器已经无法满足这种性能的要求,必须要融合多个节点,并且节点之间的相关部分是有交互的。

相当于在写mysql的时候,每个节点存储部分数据(分库分表),这就是分布式存储的由来。

存储一些非结构化数据:静态文件、图片、pdf、小视频 … 这些也是分布式文件系统的由来。

用生活中的例子,来说明集群和分布式及其区别:

小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。

后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师炒一样的菜,这两个厨师的关系是集群。

为了让厨师专心炒菜,把菜做到极致,又请了个配菜师负责切菜,备菜,备料,厨师和配菜师的关系是分布式,

一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群。

最后,再深入理解一下集群和分布式及其区别:

分布式:把一个大业务拆分成多个子业务,每个子业务都是一套独立的系统,子业务之间相互协作最终完成整体的大业务。

集群

把处理同一个业务的系统部署多个节点 。

把一套系统拆分成不同的子系统部署在不同服务器上,这叫分布式。

把多个相同的系统部署在不同的服务器上,这叫集群。部署在不同服务器上的相同系统必然要做“负载均衡”。

集群主要是简单加机器解决问题,对于问题本身不做任何分解。

分布式处理里必然涉及任务分解与答案归并。分布式中的某个子任务节点,可以是一个集群,该集群中的任一节点都作为一个完整的任务出现。

集群和分布式都是由多个节点组成,但集群中各节点间基本不需要通信协调,而分布式中各个节点的通信协调是必不可少的。

在这里插入图片描述

3. 分布式环境下面临的问题

  • 网络通信:网络本身的不可靠性,因此会涉及到一些网络通信问题
  • 网络分区(脑裂):当网络发生异常导致分布式系统中部分节点之间的网络延时不断增大,最终导致组成分布式架构的所有节点,只有部分节点能够正常通信
  • 三态:在分布式架构里面多了个状态:超时,所以有三态: 成功、失败、超时

  • 分布式事务:ACID(原子性、一致性、隔离性、持久性)

    中心化和去中心化:冷备或者热备

分布式架构里面,很多的架构思想采用的是:当集群发生故障的时候,集群中的人群会自动“选举”出一个新的领导。

最典型的是: zookeeper / etcd

经典的CAP/BASE理论
在这里插入图片描述

4. 常见的分布式系统

在这里插入图片描述

5. 什么是微服务架构?

S0A 架构

SOA 架构就是面向于服务的架构思想,本质上就是以服务为中心,把应用拆分为多个服务,抽离出可重用的服务,为每个服务的单独扩展和开发提高便利性。阿里的Dubbo 就是SOA服务架构的一种实现,事实上SOA并没有对服务间通信协议具体规定,可以RPC,可以HTTP。
在这里插入图片描述

微服务

微服务是一种SOA思想的延续,任然关注服务,但是强调是"微",微体现的是服务开发成分要低,职责要尽量单一,同时部署也要灵活方便。目前微服务是非常流行的一种软件架构,在Java生态中 SpringCloud就提供了微服务的全站解决方案。
在这里插入图片描述

相关文章:

  • 手机常用的root方案
  • 嵌入式-Stm32-江科大基于标准库的GPIO的八种模式
  • vue2 el-table行悬停时弹出提示信息el-popover
  • XXL-Job的搭建接入Springboot项目(详细)
  • RTSP/Onvif安防视频云平台EasyNVR迁移盘符后启动异常的问题排查与解决
  • HashMap学习和线程安全的HashMap
  • 蓝桥杯每日一题----货物摆放
  • web架构师编辑器内容-编辑器组件图层面板功能开发-锁定隐藏、键盘事件功能的开发
  • 中级Python面试问题
  • 概率论与数理统计————3.随机变量及其分布
  • STM32F103标准外设库——中断应用/事件控制器(六)
  • 线性代数的学习和整理23:用EXCEL计算 向量/向量组的点乘 (内积) (建设ing)
  • 数据集成时表模型同步方法解析
  • postman后端测试时invalid token报错+token失效报错解决方案
  • 走迷宫(c语言)
  • css选择器
  • ECS应用管理最佳实践
  • ES10 特性的完整指南
  • HTML中设置input等文本框为不可操作
  • nginx 配置多 域名 + 多 https
  • PHP 的 SAPI 是个什么东西
  • React Native移动开发实战-3-实现页面间的数据传递
  • Redis 中的布隆过滤器
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 第2章 网络文档
  • 关于extract.autodesk.io的一些说明
  • 开源SQL-on-Hadoop系统一览
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 一些css基础学习笔记
  • 自制字幕遮挡器
  • 《码出高效》学习笔记与书中错误记录
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • python最赚钱的4个方向,你最心动的是哪个?
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • 整理一些计算机基础知识!
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #WEB前端(HTML属性)
  • (3)llvm ir转换过程
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (LeetCode C++)盛最多水的容器
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (二)正点原子I.MX6ULL u-boot移植
  • (分类)KNN算法- 参数调优
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (算法)N皇后问题
  • (转) 深度模型优化性能 调参
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • ./configure,make,make install的作用
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • @在php中起什么作用?