“云时代架构”经典文章阅读感想四
“云时代架构”经典文章阅读感想四
(架构设计之CAP定理)
之所以选读这一篇文章,是因为这学期正好有在学软件体系架构这门课程,因此需要多积累一些有关软件体系架构的知识。CAP定理,在阅读这篇文章之前别说熟悉,就是听都没听过。CAP是所有的“老码农”都应该熟悉的一个基础原理,每一个软件架构师都应该清楚地知道CAP定理的原理。
现如今只要网上的稍微大一点的项目都是采用的分布式结构,什么是分布式结构呢?分布式结构是客户机/服务器结构的一种特殊类型。在这种结构中,数据分布存储在多台服务器上。一个分布式数据库是由分布于计算机网络上的多个逻辑相关的数据库组成的,其中,网络上的每个节点都具有独立处理能力,可以执行局部应用运算,也可通过网络执行全局应用运算。
CAP定理是分布式系统中最基础的原则。所以理解CAP原则,对于系统架构的设计至关重要。
什么是CAP:
CAP定理又被称为布鲁尔定理:CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。即任何的一个系统无论多么优化也不可能同时满足这三点。
一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
分区容错性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
如果按照理想的情况下一个系统可以满足其中的两点分别为:
CA:满足一致性和可用性而放弃分区容错性。
CP:满足一致性和分区容错性而放弃可用性。
AP:满足可用性和分区容错性而放弃一致性。
但是CA是在是实际情况下是不可能实现的,因为在放弃分区容错性的情况下,当发生节点间的网络故障。因为要保证系统之间的一致性,系统必须要将用户操作锁定,不允许用户进行写入,修改。但是如果系统已经锁定那么很明显用户是不可能进行使用的,那么就会违背可用性。
CP架构:CP架构放弃可用性,当用户需要写入操作时,因为网络原因而导致无法同步数据时,系统会拒绝用户操作,当用户想向A机中插入数据,系统拒绝操作,因此A,B中的数据一致,所以CP操作满足实际情况。
AP架构:强一致性的定义是:对于同一个数据的多个副本,在任何时候副本数据是一致的。如果我们对这个定义弱化一下,产生弱一致性的定义:对于同一个数据的多个副本,我们最终能保证数据是一致的。
在进行几周的阅读云时代架构漫谈之后,我发现自己还有很多未了解的知识,软件工程这个专业就是这样,每天都会有新东西出来,需要去学习。我们应该抱着终身学习的心态去努力。
posted on 2019-03-28 21:41 面向bug的程序设计 阅读(117) 评论(0) 编辑 收藏 举报