分布式相关的经典理论基础

 

今天来讲几个概念:单体应用和分布式集群相关概念、CAP、ACID、BASE等相关理论

1、单体应用、集群、分布式的相关概念

「单体应用」将一个应用程序的所有功能模块都打包成一个独立的单元,部署在一台服务器上运行,对外提供服务。当业务增长到一定程度的时候,单机的硬件资源将无法满足你的业务需求。此时便出现了集群模式。

「集群」 同一个业务模块,部署在多个服务器上,通过分布式调度软件(负载均衡服务器)进行统一的调度,目的是提高服务的处理量。 集群结构的好处就是系统扩展非常容易。如果随着你们系统业务的发展,当前的系统又支撑不住了,那么给这个集群再增加节点就行了。

「分布式」将一个业务模块拆分成多个子业务模块(按照业务功能,拆分成一个个独立的子系统,在分布式结构中,每个子系统就被称为“服务”),多个子业务模块部署在不同的服务器上运行,目的是实现高并发。

2、CAP理论

「CAP」
C(Consistency):一致性 
A(Availability):可用性
P(Partition tolerance):分区容错性
「CAP理论」一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求
原因:
在一个分布式系统里面,包含了多个节点,节点之间通过网络连接在一起。正常情况下,通过网络,从一个节点可以访问任何别的节点上的数据。但是有可能出现网络故障,导致整个网络被分成了互不连通的区域,这就叫作分区。一旦出现分区,那么一个区域内的节点就没法访问其他节点上的数据了,最好的办法是把数据复制到其他区域内的节点,这样即使出现分区,也能访问任意区域内节点上的数据,这就是分区容错性;
但是把数据复制到多个节点就可能出现数据不一致的情况,这就是一致性;
要保证一致,就必须等待所有节点上的数据都更新成功才可用,这就是可用性。
总的来说,就是数据节点越多,分区容错性越高,但数据一致性越难保证。为了保证数据一致性,又会带来可用性的问题。

2、ACID理论

「ACID」
指数据库事务正确执行的四个基本要素的缩写 
A(Atomicity):原子性
C(Consistency):一致性
I(Isolation):独立性
D(Durability):持久性
一个支持事务(Transaction)的数据库,必须要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。

原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性:一个事务可以封装状态改变(除非它是一个只读的)。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。也就是说:如果事务是并发多个,系统也必须如同串行事务一样操作。
隔离性:隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。
持久性:在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

3、BASE理论

「BASE」 
Basically Available:基本可用
Soft state:软状态
Eventually consistent:最终一致
BASE是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于CAP定理逐步演化而来的
其核心思想是即使无法做到强一致性,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。

基本可用:基本可用是指分布式系统在出现不可预知的故障的时候,允许损失部分可用性;
弱状态:弱状态也被称为软状态,和硬状态对应,是指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统不同节点的数据副本之间进行数据同步的过程存在延时;
最终一致性:最终一致性强调的是系统所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。

参考文章:

https://baike.baidu.com/item/ACID/10738
https://www.zhihu.com/question/20004877
https://yq.aliyun.com/articles/240630
【如有侵权,实属您的文章或回答写的清晰易懂,侵权后请联系我进行处理】

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值