浅谈CAP定理

在单机中,数据库很容易知足ACID特性的事务,可是在分布式数据库中,ACID的分布式就很难知足了。因此CAP、BASE这样的分布式理论,就诞生了。
CAP理论:一致性(C:Consistency),可用性(A: Availability)和分区容错性(P:Partition tolerance),最多只能知足其中的两个。
image.pngsql

  • 一致性:在分布式环境中,是指数据在多个副本可否保持一致的特性!
  • 可用性:系统提供的服务必须一直处于可用的状态,用户的请求都能在指定的时间内获得服务端的结果。
  • 分区容错性:分布式环境中,某个节点或网络出现分区时,都不影响对外提供一致性和可用性的服务。

咱们看看两个Mysql数据库同步的例子:
image.png
C保证了两个MySQL数据库数据的一致性,当master数据有更新,slave数据也必须更新。
A保证了master数据库和slave数据库都是可用的。
P保证了master数据库和slave数据库出现网络分区时,对外都是可用的。
因为是分布式系统,咱们的节点都是在不一样的网络中,确定会出现网络分区,因此P是咱们必需要知足的。若是不想知足,那又回到单机了。
如今的场景是这样的,master和slave出现了网络分区,致使数据同步不了,这样两边的数据就不同了,破坏了一致性C。若是咱们想要保证C,那只能停到master,不让写数据,这个时候,又破坏了可用性A。数据库

相关文章
相关标签/搜索