分布式系统一致性模型
在说FLP,CAP,BASE,ACID理论前,必须先说说分布式系统的一致性模型,它是其他理论的基础知识。
依次介绍几个相关的概念:
- 分布式系统是由多个不同的服务节点组成,节点与节点之间通过消息传递进行通信和协调。根据消息传递的不同,分布式系统的运行模型,可以分为异步模型系统和同步模型系统。
- 同步:系统中的各个节点的时钟误差存在上限;且消息传递必须在一定时间内完成,否则认为失败;同时各节点完成处理消息的时间是一定的。
- 异步:系统中各个节点可能存在较大的时钟差异,同时消息传输时间是任意长的,各节点对消息进行处理的时间也可能是任意长的。
- 一致性:对于给定一系列操作,分布式系统中的节点对处理结果达成一致。
- 数据一致性:分布式系统各个节点具有关联性的数据在逻辑上完整且正确。
所以一致性模型就是要保证在分布式系统数据和状态的一致性。它又可以被分为强一致性模型和弱一致性模型。
强一致性模型
在强一致性模型中,一旦数据写入成功,在任意时间,任意副本都可以读取数据当前的新值,且所有后续操作都将在新值的基础上展开,直到这个数据被再次更新。