一、分布式理论
1.CAP理论
CAP理论是说对于分布式数据存储,最多只能同时满足一致性(C,Consistency)、可用性(A, Availability)、分区容忍性(P,Partition Tolerance)中的两者。
1.一致性
是指对于每一次读操作,都能够读到最新写入的数据,且每个节点读取到的数据是一致的。
对于客户端来说,一致性指的是并发访问更新过的数据如何获取的问题。
从服务端来看,则是更新如何复制分布到整个节点,以保证数据最终一致。
从多个应用系统来看,是保证各个业务系统冗余的数据和主数据系统的数据一致性。
1.一致性级别
1、强一致性
这种一致性级别是最符合用户直觉的,它要求系统写入什么,读出来的也会是什么,用户体验好,但实现起来往往对系统的性能影响大
2、弱一致性
这种一致性级别约束了系统在写入成功后,不承诺立即可以读到写入的值,也不承诺多久之后数据能够达到一致,但会尽可能地保证到某个时间级别(比如秒级别)后,数据能够达到一致状态
3、最终一致性
最终一致性是弱一致性的一个特例,系统会保证在一定时间内,能够达到一个数据一致的状态。这里之所以将最终一致性单独提出来,是因为它是弱一致性中非常推崇的一种一致性模型,也是业界在大型分布式系统的数据一致性上比较推崇的模型。
在实践中,多个系统要实现最终一致性的兜底解决办法多数是通过数据比对来实现的,如多个业务系统通过比对将生产者数据备份的大数据平台进行比对,从而实现各个业务系统的最终一致性。
2.可用性
可用性:是指对于每一次请求,都能够得到一个及时的、非错的响应。
系统能够很好的为用户服务,不出现用户访问服务时服务器不可用,或者访问超时等用户体验不好的情况。
3.分区容忍性
The system will continue to function when network partitions occur.
即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。
分区容错性要求能够使应用虽然是一个分布式系统,而看上去却好像是在一个可以运转正常的整体。
它跟趋向于单机模式的对比,如一台机器宕机了,其他机器一样能够提供同等的服务。但机器部署得越多,一致性和可用性就越难保证。
比如现在的分布式系统中有某一个或者几个机器宕掉了,其他剩下的机器还能够正常运转满足系统需求,对于用户而言并没有什么体验上的影响。
4. CAP的选型
CP和AP:分区容错是必须保证的,当发生网络分区的时候,如果要继续服务,那么强一致性和可用性只能 2 选 1
C A 满足的情况下,P不能满足的原因:
数据同步©需要时间,也要正常的时间内响应(A),那么机器数量就要少,所以P就不满足。
若p不能满足,就已经趋向于单机了。
CP 满足的情况下,A不能满足的原因:
数据同步©需要时间, 机器数量也多§,但是同步数据需要时间,所以不能再正常时间内响应,所以A就不满足
AP 满足的情况下,C不能满足的原因:
机器数量也多§,正常的时间内响应(A),那么数据就不能及时同步到其他节点,所以C不满足
标签:机器,理论,可用性,满足,分布式系统,一致性,数据,分布式 From: https://www.cnblogs.com/daiwei-dave/p/17242341.html