什么是CAP原则?
CAP 原则是分布式系统设计中的三个关键特性:一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)。
1.一致性(Consistency)
一致性是指在分布式系统中,所有节点的数据副本都保持相同的状态,强调的是数据的准确性和一致性。
2.可用性(Availability)
可用性是指分布式系统在出现故障或网络分区的情况下,仍然能够提供服务和响应请求。
3.分区容忍性(Partition Tolerance)
分区容忍性是指分布式系统能够在网络分区的情况下继续正常运行,网络分区是指不同部分的网络无法相互通信,但系统仍然应该继续工作,即使在分区恢复之前也是如此。
这三个特性之间存在一种权衡关系,即在分布式系统中,很难同时满足这三个特性。
CAP原则有哪些?
根据 CAP 原则,分布式系统最多只能同时满足其中的两个特性,无法同时满足全部三个。
具体来说,可以分为如下3类:
1.CA 系统
强调一致性和可用性,但在网络分区时可能牺牲分区容忍性。
这意味着在分区期间,系统可能会暂停服务或拒绝请求,以确保数据的一致性和可用性,传统的关系型数据库通常采用这种模型。
2.CP 系统
强调一致性和分区容忍性,但在网络分区时可能会暂时牺牲可用性。
系统会保证数据的一致性和分区容忍性,但在分区期间可能会暂停服务或降低可用性,一些分布式数据库系统可以采用这种模型。
3.AP 系统
强调可用性和分区容忍性,但在网络分区时可能会牺牲一致性。
系统会继续提供服务,响应请求,并允许节点之间的数据副本存在一定程度的不一致,一些 NoSQL 数据库通常采用这种模型。
陈睿mikechen
十余年BAT架构经验,资深技术专家,就职于阿里、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》