CAP的定义:
- C:Consistency:Every read receives the most recent write or an error. 所有读请求,要么返回最新数据,要么返错。
- Availability: Every request receives a (non-error) response, without the guarantee that it contains the most recent write. 所有请求返回非错误,数据不一定最新。
- Partition tolerance: The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes. 网络数据丢失情况下,系统可以正常运行。
CAP原理是,任何一个分布式系统,只能满足CAP的其中两个特性。
设计指导
对于一个分布式系统来说,出现网络异常、网络分区是很正常的,必须要考虑。所以我们在设计系统的时候,P是一定要满足的。因此CAP给我们的实现指导意义,我觉得是在A和C中选择。
如果选择C,那么系统在分区情况下,必须保证返回最新的数据或者出错。由于有分区的存在,那么无法保证返回最新的数据,只能拒绝请求(出错),因此就牺牲了可用性(可用性要求不可以出错)。
如果选择A,那么系统在分区情况下,系统可以响应请求,但是无法保证数据是最新的。
网友评论