聊聊CAP理论是个什么东东?

408 阅读3分钟

这是我参与8月更文挑战的第24天,活动详情查看:8月更文挑战

CAP的理论;

最初使用的是注册中心是 EUREKA,当做CAP理论其中可以使用的

image.png

CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾

CAP原则的精髓就是要么AP,要么CP,要么AC,但是不存在CAP。如果在某个分布式系统中数据无副本, 那么系统必然满足强一致性条件, 因为只有独一数据,不会出现数据不一致的情况,此时C和P两要素具备,但是如果系统发生了网络分区状况或者宕机,必然导致某些数据不可以访问,此时可用性条件就不能被满足,即在此情况下获得了CP系统,但是CAP不可同时满足 [2]  。

其中我们使用的的是Eureka的是关于AP,zookeeper的是关于CP

1.传统的是关系型数据库是ACID;

  事务: transaction的四大特性;-----ACID

AAtomicity 原子性
CConsistency一致性
IIsolation隔离性
DDurability持久性

原子性(Atomicity)

原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

一致性(Consistency)

事务前后数据的完整性必须保持一致。

隔离性(Isolation)

事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。

持久性(Durability)

持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响

 NOSQL的事务特性:

  CAP的理论:

  C: 强一致性

  A: 高可用性

 P: 分布式容忍性(分区容错性)-----

   只能是AP    :  高可用和分区容错性   

   分区容错性是必须实现的;

 

大多数选择比如电商或者说是网站平台,首先保障的是高可用性;
    然后是分区容错性
    还有弱的一致性,保证的

 CP:

高流量过去之后 ,这些对于评论,浏览量的数据要保持一致性;

web实时性和读写性的需求:

对于订票软件--实时订票;--(过几秒,或者是十几秒)订阅者可以完全接受;

  比如说

读己知所写==>

自己发一条微博,然后自己先看到,最后才是后面的订阅者才能看见;

Base

为了解决关系型数据库的强一致性问题----》引起的可用性降低而提出的方案

 Base(基本)
    基本可用:
    软状态
    最终一致性:

BASE

BASE理论是对CAP理论的延伸,思想是即使无法做到强一致性(CAP的一致性就是强一致性),但可以采用适当的采取弱一致性,即最终一致性。

BASE是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency)。

 阿里云的云栖:Cap和Base的理论

  yq.aliyun.com/articles/69…