分布式理论

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 1.定义分布式的本质是一系列计算机集群通过网络共同完成一串连贯的任务。2.关键技术分布式主要关注的几个关键点技术是:性能容错通信

1.定义

分布式的本质是一系列计算机集群通过网络共同完成一串连贯的任务。

2.关键技术

分布式主要关注的几个关键点技术是:

  1. 性能
  2. 容错
  3. 通信

性能:


可扩展性,可扩展性指的是当资源扩展时,整个系统能对应得到计算性能和吞吐量的提升。比如使用了负载均衡,1个结点扩展为了3个结点,那么对应的整个系统的计算能力和吞吐量就应该提升为原来的3倍,当然性能堆叠是会有损失的,比如负载均衡扩展后相应的还需要引入一个负载均衡计算的中间层,负载均衡计算以及这个中间层和业务结点的网络通信中损耗掉一部分性能。

所以整个系统应该是向提升为原来性能的3倍这个理想标准靠近,如果远远低于这个理想标准,那么就要排查一下哪里造成了性能的大量损耗,是否出现了问题。

容错:

分布式集群会将一个不常见的问题变得常见,比如1台电脑1年会有3次卡死,那么1个1000台电脑的集群,1天会卡死3台。因此分布式系统的容错能力是很重要的,容错的核心是保证


可用性


可用性是容错必须保证的核心点,当系统出现异常时要尽量保证系统能继续使用。


可恢复性


可用性是容错尽量要保证的点,当分布式集群出现了问题,是否还能进行恢复?比如单节点故障,那么这个结点的历史数据是否有保存等这些点都是要考虑的。


保存数据有两种实现方法:


非易失性存储


将数据存储在磁盘上,这样即使结点故障,后期修复的时候直接从磁盘上恢复数据即可。使用非易失性的存储是最简单的保存数据的方法。


复制


让数据在所有结点上进行复制、共享,这样即使是单节点故障,全局仍然是记录有数据的,后期修复的时候去其他节点同步数据即可。复制会存在一个问题,即不同结点间很容易因为一些问题造成状态的不同步。这个问题可以解决,但是解决的难度很大,成本很高。

通信:


目前来说分布式系统中结点的通信都是使用RPC,但是如何实现RPC很多地方是值得考虑的。


通信协议之间各自性能均不相同,应用层是选用速度快但是安全性不高的HTTP、还是选用安全性高但是速度不快的HTTPS;传输层是选用可靠但速度慢的TCP,还是选用速度快但是不可靠的UDP,等等......

3.关键问题

一致性问题:

一致性其实是容错带来的一个问题,为了容错一个数据往往存在多份,放在不同的结点,一个更新操作后面往往伴随着多个同步操作,来达到数据的一致性。这也就意味着分布式系统中有很多时间节点间各自的数据很可能往往处于不同版本,不具有一致性。如何保证数据的一致性也是分布式系统经常考虑的问题。


一致性分为两种:


强一致性

弱一致性

强一致性:

系统对外提供服务时要时时刻刻对外呈现出一致性,也就是说当系统内部在进行同步操作时系统要拒绝对外提供服务,直到系统内部各结点间的数据达到一致性。

弱一致性:

弱一致性,也叫最终一致性,系统对外提供服务时不要求时时刻刻对外呈现出一致性,反正只要最后提供的结果是准确的就行。

.基本定理

4.1.CAP定理

CAP,是高可用性、强一致性、分区容错性这三种特性的缩写。。

高可用性:

不管访问的服务是否成功都要给出响应,

强一致性:

系统中数据必须是一致的,不能出现脏数据,比如已经修改了一个值,再去访问系统的时候拿到的是修改以前的值。

分区容错性:

分布式系统一般会划分成多个子网,子网之间可能由于网络故障等原因造成通信中断,因此必须保证系统在任意情况下分区能单独且正常的工作。这就意味着每个分区必须有自己的数据,每份数据都需要在每个分区单独存放。

三者不可兼得,只能同时满足其中两种。

f1abe19b5863461cba4e266906cfeb0e.png

满足高可用性、分区容错性就满足不了强一致性,因为分区容错要求每个分区内部都存一份数据,高可用性要求立即响应,而强一致性在各个分区之间进行数据同步这段时间内会对外拒绝服务。


满足高可用性、强一致性分就满足不了分区容错性,因为高可用性要求立即响应,强一致性要求系统实时数据正确,就不可能在各个分区内部存一份数据,只能是全局唯一一份数据,这样才能保证数据实时的准确。


满足分区容错性、强一致性就满足不了高可用性,因为分区容错要求每个分区内都存有一份数据,强一致性要求系统对外提供服务时必须数据是准确的,也就意味着在进行全局数据交换、进行同步的时间段对外是拒绝服务的。

4.2.BASE定理

BASE是三个单词的缩写:

  • basically available(基本可用)
  • Soft state(软状态)
  • Eventually consistent(最终一致性)

BASE 理论是对 CAP 中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。


也就是说分布式系统还是在努力的往三者兼顾上靠拢,具备基本的分区容错性后还是希望一致性和高可用性都具备一些,也就是保证最终一致性的情况下系统基本可用。达到这个目的就需要系统具有多种状态,进行数据同步保证最终一致性的时候对外的可用性不高,不用进行数据同步的时候对外呈现出高可用性。

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
存储 算法 数据可视化
分布式理论和一致性算法
分布式系统是一个硬件或软件组成分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统
133 0
分布式理论和一致性算法
|
开发框架 Java 关系型数据库
分布式系列教程(20) -分布式事务解决方案(理论篇)
分布式系列教程(20) -分布式事务解决方案(理论篇)
107 0
|
6月前
|
缓存 负载均衡 算法
分布式系统设计理论之一致性哈希
分布式系统设计理论之一致性哈希
53 1
|
负载均衡 算法 前端开发
分布式系统常见理论讲解
分布式系统是指由多个节点通过网络进行通信和协作的系统,它具有高可用性、高扩展性、高性能等优点,但也面临着一些挑战,如数据一致性、容错性、负载均衡等。为了解决这些问题,分布式系统设计出现了一些经典的理论和方法,如 CAP 理论、BASE 理论、一致性等。
116 0
|
存储 分布式计算 分布式数据库
「分布式理论 - 现代架构基石」
「分布式理论 - 现代架构基石」
132 0
分布式理论学习-分布式技术原理
知其然知其所以然,学习分布式的过程中,对于理论知识是必不可少的,主要是分布式互斥、分布式选举、分布式共识、分布式事务、分布式锁。
|
存储 缓存 索引
分布式理论学习-分布式存储
在学习分布式存储之前,那我们需要对CAP理论、原则、数据分布方法有一定的认识。
分布式理论学习-分布式体系结构
通过学习《分布式技术原理与算法解析》课程,对分布式理论有一个整体的认识,利用思维导图将内容整理出来。
|
消息中间件
分布式理论学习-分布式通信
分布式通信主要内容 远程调用:一个服务调用另外一个服务 发布订阅:生产者发布消息到消息中心,消费者从消息中心获取消息 消息队列:消息队列的思想就是基于队列实现的,按照FIFO顺序消费信息
|
负载均衡
分布式理论学习-分布式高可用
当系统出现大量用户请求时,我们主要从负载均衡、流量控制、故障隔离三个角度去思考如何提高系统高可用,以避免处理能力的上线,导致系统崩溃。
下一篇
无影云桌面