写点什么

架构师训练营第六周作业

用户头像
脸不大
关注
发布于: 2020 年 11 月 01 日

CAP 原理:

C:Consistency,一致性;数据在多个副本之间是否能够保持一致的特性。

A:Availability,可用性;每次请求都应该得到一个响应,而不是返回一个错误或者失去响应。

P:Partition tolerance,分区容错性;分布式系统在遇到网络分区故障时,仍然需要保证对外提供一致性和可用性的服务,除非整个网络都发生故障。

在分布式系统中这三个要素最多只能同时实现两点,不可能三者兼顾。因此在进行分布式架构设计时,必须做出取舍。而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值。因此设计分布式数据系统,就是在一致性和可用性之间取一个平衡。对于大多数 Web 应用,其实并不需要强一致性,因此牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向。

以老师课上举的例子,当节点 A 与节点 B 发生网络通讯故障无法同步数据时,客户端 1 向节点 A 写入数据 id 为 55 的商品价格 99 元,同时,客户端 3 向节点 B 写入的数据 id 为 55 的商品价格 75 元;客户端 2 读取节点 A 中的数据,与客户端 4 读取的节点 B 中的数据,就存在不一致性。这是就是满足了可用性 A,而无法满足一致性 C;相反,当一定要保持数据一致,就无法保证系统可用(满足了 C 一致性,舍弃了 A 可用性)


用户头像

脸不大

关注

还未添加个人签名 2018.11.06 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第六周作业