面向对象编程学习
请简述 CAP 原理:
在分布式网络分区环境中,数据的一致性、可用性和分区容忍性三者之间,至多只能保证两者,无法三者同时保证。
1、分布式是前提
CAP理论的主要场景是在分布式环境下,在单机环境下,基本可不考虑CAP问题。
2、C、A、P准确定义
Consistency:一致性,对于任何从客户端发达到分布式系统的数据读取请求,要么读到最新的数据要么失败,其强调的是数据正确。
Availability:可用性,对于任何求从客户端发达到分布式系统的数据读取请求,都一定会收到数据,不会收到错误,但不保证客户端收到的数据一定是最新的数据,强调的是不出错。
Partition tolerance:分区容忍性,分布式系统应该一直持续运行,即使在不同节点间同步数据的时候,出现了大量的数据丢失或者数据同步延迟,强调的是不挂掉。
3、对于一个分布式系统而言,P是前提,必须保证,因为只要有网络交互就一定会有延迟和数据丢失,这种状况我们必须接受,必须保证系统不能挂掉。
所以,按照CAP理论三者中最多只能同时保证两者的论断,对于任何分布式系统,设计时架构师能够选择的只有C或者A,要么保证数据一致性(保证数据绝对正确),要么保证可用性(保证系统不出错)。
评论