目录
概述
分布式架构之所以复杂,就是因为增加了网络通信,而网络通信本身具有不确定性。但是作为业务支撑的整个技术架构,所有业务的处理必须要具备确定性。
因此在这样一个矛盾下,导致架构变得更加复杂。
面试题”说说你对CAP的理解“这个问题,就是在这个背景下产生的
考察目的
这个问题考察难度算中等,主要针对5年以上开发经验的同学。
考察目的有两个:
1. 了解求职者对于分布式架构的理解
2. 在分布式架构中,很多技术方案在落地的时候需要有取舍,要么是CP、要么是AP,理解CAP定理,能够更好的做出合适的选择
问题解答
CAP模型,在一个分布式系统里面,不可能同时满足三个点:
一致性(Consistency),访问分布式系统中的每一个节点都能获得最新的数据。
可用性(Availability),每次请求都能获得一个有效的访问,但不保证数据是最新的。
分区容错性(Partition tolerance),分区相当于对通信耗时的要求,系统如果不能在时限范围内达成数据一致,就意味着发生了分区的情况。
在CAP模型中只能满足CP或者AP,之所以不能满足CA,因为网络通信的不确定性可能会导致分区容错,也就是分区容错性必然是存在的,因此我们只能在一致性和可用性之间做选择。