面对可能的网络延迟,不可预测的请求流量等,设计一个分布式系统。我们通常计划并实现系统的目标和数据一致性。完全实现这一目标并不容易。结果,基本定理诞生于分布式系统领域,即CAP定理,用于指导分布式系统的设计。从系统的三个角度来看,高可用性,数据一致性,网络容忍度,分布式系统的特征被吸引到分区分区中。false -polerant耐耐加强度模型。这样,这样的方式,系统设计人员只需要权衡容错的容忍度根据业务方案的特征,适合业务方案的分区极大地简化了分布式系统设计的困难。
因此,CAP定理是建筑师必须掌握的内容,它影响了建筑师分布式系统的技术选择和技术决策。从而重要的是,让我们一起学习CAP定理。
CAP定理最初是由加利福尼亚大学的计算机科学家Eric Brewer提出的猜想技术研究所发布了CAP定理证书,使其被分布式系统认可。
CAP定理指出,在一个分布式系统中,该系统在区域网络之间连接,共享数据,一致性,可用性和分区的三个约束只能同时同时满足两个约束,本质
以下是对这三个属性的简单描述:
应该注意的是,CAP描述了一个常规的分布式系统方案:有一个网络连接,并且数据在整个节点上共享。如果整个系统中只有一个数据,而其他节点则没有相应的副本,则无需为了进行横截面节点的数据共享,因此分布式系统不是帽子关心的对象,也无法设计用于设计瓶盖定理以设计其以设计它和实现。
在理解CAP的基本概念之后,让我们分别从C,A和P的三个属性中学习,并加深对CAP的理解。
这里的一致性从不同角度具有自己的描述方法。在分布式系统中,每个节点的数据相同;对于客户而言,性能的性能始终是最新书面的。需要清楚的是,对于分布式系统节点,可以在某个时刻具有不同的数据:如果在某个节点上执行原子操作,则执行过程中的节点数据和其他节点与其他节点合并。不完全一致,只有在完成原子操作的实现后,节点的数据才会继续同步。例如,公共交易操作,仅在之后交易已提交,客户可以读取按事务编写的数据,并且将失败汇回旧数据,并且在交易中间没有读取数据的情况。
一致性要求分布式环境中的操作应在单个计算机上完成。客户端启动请求时,您收到请求的节点将及时响应并将更新的数据同步到另一个节点。确定数据一致性。特定工作流,如下所示:
一致性强调了数据的强大一致性,要求某些系统可以说很重要。造成严重的后果。
引入一致性后,请查看可用性。尽管可用性的概念相对简单,但重要程度与一致的程度相同。要使系统满足可用性,则是确保系统可以返回有效的响应,除了所有节点的失败,并允许响应客户作为旧数据,但响应失败不会失败。
可用性强调可用的服务,但不能保证数据的正确性。使用一个简单的示例来描述分布式系统的可用性如下:允许客户端从节点1或节点启动阅读操作。当其中一个节点之一时失败,无论节点之间的数据是否一致,只要有节点服务,您都可以接收请求请求。在对X值的响应中,这表明满足了这两个节点服务。
在说明可用性中,还值得一提的是有效的响应。要返回有效的响应,它不能超时或错误。结果不一定是正确的。例如,返回旧数据,但是在接收到它后可以正常处理客户端。
在谈论C和A之后,最终谈论P:分区容错。网络中断等将在节点之间引起问题。不能完成同步操作,并且分区的容错性要求即使在网络分区出现网络分区,系统也可以继续为客户提供服务。
由于分布式系统与一台计算机不同,因此它涉及多个节点之间的通信和数据交互,并且无法避免网络问题。如果没有分区的容错性,则意味着系统不允许在节点之间的通信中发生任何错误。系统不可用,在大量系统中是无法接受的。因此,必须考虑节点之间的分区容差,这也是首先要保证CAP定理中的容错的原因。
在了解CAP定理(C)的一致性之后同时满足,并且当存在网络交互和数据同步时,将会有延迟和数据丢失。在这种情况下,系统不能挂断。因此,必须保证分区的容错性,其余的是在一致性(c)和可用性(a)之间进行选择。选择一致性以确保数据的正确性,但这也意味着这意味着该系统可能不可用;在选择可用性,确保服务的高可用性,但也意味着数据可能是不一致的。隔离,我们将讨论CP体系结构的使用,AP架构的特征以及如何根据不同的分布式场景选择合适的体系结构策略。
对于CP体系结构的分布式系统,为了确保一致性在网络分区发生时,如果节点1上的数据X已更新为2,但是由于节点之间的数据数据已中断,所以节点1数据不能同步到Node2的节点。节点2上的数据X仍然1。在这次,如果客户端访问节点2的数据X,则节点2需要返回错误,提示系统错误,直到节点之间的数据保持同步。显然违反了可用性的要求,因此CAP定理只能满足CP。
如果分布式场景需要强大的一致性,或者可以长时间耐受系统的忍受,但必须一致数据,则它更适合于设计CP架构设计的分布式系统。在这样的系统中,数据不能同步,并且必须牺牲系统的可用性,直到节点数据在响应前达到相同。许多应用程序在开源社区中使用CP架构,例如Redis,HBase,MongoDB,MongoDB,Zookeeper等,领事等都放弃了一定的可用性并选择CP属性。
如果在AP体系结构中使用了分布式系统设计,以确保在网络分区发生时可用性时,同一节点1上的数据X已更新为2,但是由于节点之间的数据数据已是中断,节点1数据不能同步到节点2 2 2节点2上的数据x仍然1.这是客户端访问节点2获得数据x时的正常响应,它接收正常响应,旧数据x = 1,当前的最新数据X已经是2,这里不需要满足一致性的要求,因此,以这种方式,CAP定理只能符合APS。
有许多方案也适用于APS,例如某些查询系统,电子商务系统的产品查询等,其中大多数人牺牲了某些数据一致性,以确保系统的可用性。模型包括Eurka,Cassandra。
当涉及CAP定理时,大多数人认为,无论情况如何,分布式系统都只能在C中选择一个,但是这里的前提是该系统具有网络分区。如果系统没有网络分区,也就是说,当不存在P时,我们不需要放弃C或A。因此,以确保添加的添加,不一定只有AP和CP选择。不同内部模块具有不同内部模块的方案也不同。可能是一个模块采用AP架构,另一个模块使用CP架构。作为出色的架构师,它不应受到大多数人知道CAP定理的局限性。它是设计符合自己业务场景的分布式系统的首要任务。
本文主要理解并理解CAP定理以及每个C,A,P和CAP定理的应用的含义。对CAP定理进行构图对架构师非常重要。由于分布式系统,网络故障是不可避免的。当发生网络故障时,根据正常行为逻辑维护系统尤其重要。合格的建筑师需要能够根据实际业务场景和特定需求来称重和设计可用的分布式系统。