写点什么

架构师训练营第五周”技术选型二“作业

用户头像
随秋
关注
发布于: 2021 年 01 月 03 日

作业二选一,时间关系只做第一题

Q:请简述 CAP 原理

什么是 CAP

  • C:Consistency,一致性,每次读取应该获取最新的数据,而不是过期数据,数据保持一致

  • A:Availability,可用性,每次请求都要有相应,这个响应不需要保证一定是最新的数据,但不能是错误或者失去响应

  • P:Partition tolerance,分区耐受性,网络获取其它原因,部分服务器失效,整个系统依然是可操作的

为什么 CAP 不能同时满足

对于分布式系统而言,故障一定会发生,分区耐受性必须保证。

当网络分区失效发生时,要么取消操作,保证一致性,但系统不可用。如果要继续写入数据,保证系统可用,则一致性无法保证。

如果一致性、可用性同时保证,需要写入时所有服务器同时生效,在分布式系统故障时这是不可能的。

因此,对于一个分布式系统,可用性、一致性只能二选一。

最终一致性

分布式系统不能同时保证可用性、一致性,因此退而求其次,保证最终一致性。最终一致性之前,可以忍受短时的不一致。

写冲突处理方案

  • 根据时间戳,保证最后写入的数据

  • 客户端冲突解决,将解决冲突的逻辑放到客户端

  • 投票解决冲突,多数节点同时成功才算成功

用户头像

随秋

关注

还未添加个人签名 2018.04.27 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第五周”技术选型二“作业