在分布式领域里,一致性成为了炙手可热的名词,缓存、数据库、消息中间件、文件系统、业务系统……,各类分布式场景中都有它的身影,因此,想要更好的理解分布式系统,必须要理解“一致性”这个概念。
其实关于一致性的讲述,之前聊《深入浅出 -- 系统架构之分布式CAP理论和BASE理论》这两个分布式理论时也曾提及过,讲到CAP
一致性是数据一致性,BASE
一致性则是指状态一致性,不过当时讲的不够具体、不够体系化,更多是围绕着两个分布式理论在阐述,而本文就展开聊聊 分布式系统里的一致性模型。
一、重要的一致性模型
回想《深入浅出 -- 系统架构之分布式CAP理论和BASE理论》聊到的一致性:
CAP
一致性:任何时间点,在任意节点上看到的数据完全一致;BASE
一致性:数据只能从一个一致状态变化到另一个一致状态。
CAP
理论针对的是数据一致性,主要关注怎样维持多副本的一致性视图,即如何使多个节点上的数据,对外表现的和一份数据一样。BASE
理论关注状态一致性,主要在于根据业务需求操作不同节点的数据时,最终实际执行结果和我们的观念一致,