架构师训练营 第六周 作业
请简述 CAP 原理。
CAP分别指:
一致性(Consistency):每次读取的数据都应该是最近写入的数据或返回一个错误,而不是过期数据。
可用性(Availability):每次请求都应该得到一个响应,而不是返回一个错误或失去响应,不过这个响应不需要保证数据是最近写入的,即系统需要一直都是可以正常使用的,不会引起调用者的异常,但是不保证响应的数据是最新的。
分区耐受性(Partition tolerance):因为网络原因,部分服务器节点之间消息丢失或者延迟,系统仍然可以操作。
CAP原理是说在分布式系统必须要满足分区耐受性(P)的前提下,可用性(A)和一致性(C)无法同时满足,原因是:
当发生网络分区时,如果不再更新数据,那么数据就是一致的,但是系统不可用;如果继续写入数据,则数据的一致性无法得到保证
对于一个分布式系统,网络失效一定会发生,也就是说分区耐受性必须要保证,则可用性和一致性就必须二选一
当发生网络分区时,如果选择一致性,那么系统可能返回错误或者超时,系统不可用;如果选择可用性,那么系统总是可以返回数据,但是不能保证返回的数据是最新的。
评论