0%

数据一致性

数据一致性

数据一致性的问题其实是对分布式事务的另一种解释,分布式事务就是希望在多级环境下可以像单机一样实现强一致性,但是这种强一致性付出的代价很大,而在很多场景下,其实是不需要做到强一致性的,只要最终一致就行。

这里来了解一下数据一致性的基础理论CAP和BASE

CAP

CAP表示三个单词,Consistency、Availability、Partition-Tolerance,这里就三个单词分别进行说明

  • Consistency 所有的节点在同一时间读到同样的数据,也就是数据的一致性,当数据写入成功后,所有的节点会同时看到这个新的数据
  • Availability 保证无论成功还是失败,每个请求都能够在有限的时间内收到一个反馈,也就是数据的可用性
  • Partition-Tolerance 分布式系统在遇到任何网络分区故障时,仍需要保证对外提供一致性和可用性的服务,除非是整个网络环境都发生了故障

在系统中,我们不能够同时满足上述三项,只能满足两项

  • CA 放弃分区容忍性,加强一致性和可用性,也就是传统的单机架构,放弃P也就放弃了可扩展性
  • AP 放弃一致性,追求分区容忍性以及可用性。这里是指放弃强一致性,使用最终一致性
  • CP 放弃可用性,追求一致性和分区容忍性。如果遇到网络分区问题或其他故障时,受到影响的服务需要等待一段时间,等待期间无法对外提供正常的服务

BASE

  • Baseically Available 基本可用,允许分区失败
  • Soft state 软状态,接受一段时间的状态不同步,即允许系统在不同节点的数据副本之间进行数据同步时的过程存在延时
  • Eventually consistent 最终一致,保证在经过一段时间的同步后,最终能够达到一个一致的状态

欢迎关注我的其它发布渠道