NoSQL 学习笔记与心得
思想篇
CAP,BASE 和最终一致性是 NoSQL 数据库存在的三大基石。而五分钟法则是内存数据存储
了理论依据。这个是一切的源头。
1. CAP
1. C:Consistency 一致性
2. A:Availability 可用性(指的是快速获取数据)
3. P: Tolerance of networkPartition 分区容忍性(分布式)
CAP 理论告诉我们,一个分布式系统不可能满足一致性,可用性和分区容错性这三个需求,最
多只能同时满足两个。
关注的是一致性,那么您就需要处理因为系统不可用而导致的写操作失败的情况,而如果您关
注的是可用性,那么您应该知道系统的 read 操作可能不能精确的读取到 write 操作写入的最
新值。因此系统的关注点不同,相应的采用的策略也是不一样的,只有真正的理解了系统的需
求,才有可能利用好 CAP 理论。
而对大型网站,可用性与分区容忍性优先级要高于数据一致性,一般会尽量朝着 A、P 的方向
设计,然后通过其它手段保证对于一致性的商务需求。架构设计师不要精力浪费在如何设计能
满足三者的完美分布式系统,而是应该进行取舍。
最终一致性
一言以蔽之:过程松,结果紧,最终结果必须保持一致性
为了更好的描述客户端一致性,我们通过以下的场景来进行,这个场景中包括三个组成部分:
存储系统
存储系统可以理解为一个黑盒子,它为我们提供了可用性和持久性的保证。
Process A
ProcessA 主要实现从存储系统 write 和 read 操作
Process B 和 ProcessC
ProcessB 和 C 是独立于 A,并且 B 和 C 也相互独立的,它们同时也实现对存储系统的 write
和 read 操作。
下面以上面的场景来描述下不同程度的一致性:
强一致性
强一致性(即时一致性) 假如 A 先写入了一个值到存储系统,存储系统保证后续 A,B,C 的读取
操作都将返回最新值
评论0