系统的 CAP 定理与 BASE 理论
容错性:指分布式系统中的某个节点或网络分区出现了故障时,整个系统仍然能对外提供满足一致性和可用性的服务,也就是说部分故障不影响整体使用。 可用性:系统一直可以正常地做读写操作,简单而言就是客户端一直可以正常访问并得到系统的正常响应,从用户角度来看是不会出现系统操作失败或者访问超时等问题。 一致性:在分布式系统完成某写操作后任何读操作,都应该获取到该写操作写入的那个最新的值。相当于要求分布式系统中的各节点时时刻刻保持数据的一致性。 如何理解 CAP ?
首先在保证了分区容错性的前提下,意味着若某个节点故障了,用户还可以继续访问,但这时用户在访问过程中就会出现一致性和可用性不能同时满足的情况,如下图: 设分布式系统有 S0、S1 两个节点,节点中的变量初始值都是 v0,现在有一个客户端向系统写入了新值 v1,这里假设直接写的是节点 S0,写完之后客户端再去读取这个值,但此时读到了 S1 节点的。 由于 S1 节点与 S0 节点失去通信,此时 S0 节点的数据还未同步到 S1 节点,因此客户端读取到的是旧的值 v0,这就出现不满足一致性的情况,即满足了可用性,失去了一致性。 情景二: 类似的,如果系统保证了强一致性,那么在客户端往 S0 节点写完数据后,S0 向 S1 节点同步数据出现了问题,此时如果客户端再去读取 S1 节点的数据,客户端就会一直处于等待状态,因为系统各节点的数据未同步完,需要等同步完才能使用,即满足了一致性,而失去了可用性。 (编辑:惠州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |