CAP理论是指对于一个分布式数据系统,其可用性、一致性、和分区耐受性不可以同时满足。其中:
C:一致性Consistency,指每次读取数据都应该是最近写入的数据,或返回一个错误,而不是返回过期的数据。通俗来说就是,如果返回,就返回正确的数据。
A:可用性Availability,指每次请求都得到响应,不是返回错误或不返回。不过,这个响应不需要保证是最近才写入的。通俗来说就是,一定要返回,可以返回旧数据。
P:分区耐受性Partition tolerance,指即使因为网络原因,部分服务节点之间消息丢失或延迟了,系统依然是可以操作的。
需要注意的是,CAP定理最初只是作为经验法则提出的,目的也只是帮助大家深入探讨数据库设计的权衡之道,鼓励大家探索无共享系统。
其指导在于,在网络正常时,系统可以同时保证C和A,但是一旦发生网络故障,就必须要在一致性和可用性之间做出选择。
由于正是定义的CAP理论范围很宅,只考虑了一种一致性模型和一种故障(网络分区),而没有考虑网络延迟、节点失败或其他需要折中的情况,因此,尽管CAP具有重大影响力,但是对于系统设计来说,没有太大实际价值。
参考:
架构训练营
数据密集型应用系统设计
网友评论