📜  CAP定理的各种性质

📅  最后修改于: 2021-08-24 04:33:27             🧑  作者: Mango

先决条件– CAP定理

在分布式系统中,您必须听说过CAP定理。 CAP定理指出,不可能在数据存储中实现所有这三个属性。

在这里,所有三个属性均指的是C =一致性,A =可用性和P =分区容限。根据该定理,一次只能实现两个。

如果每月可以处理1000个请求,但是每月要处理一百万个请求将有些困难。在图中的此处,我们可以有n种不同的数据库设置。所有写入操作均在Master数据库中执行,所有读取操作均在Slave数据库中执行。但是必须将来自主服务器的数据复制到异步发生的从数据库。

不一致:
有些用户试图在写入后(甚至在将数据复制到从属之前)立即尝试读取数据,这被称为不一致。用户可能认为这是错误或类似的东西。

分片:
因此,为了克服不一致的缺点,我们有另一种称为分片的方法。

在这种情况下,这里的所有数据库都是主数据库,而不是主从关系,即所有数据库承担同等的责任。例如,在下图中,我们有3个数据库实例。这里要注意的要点:

数据分为n个单独的段(此处为3个)。
系统将读取和写入操作缩放n倍(如果有n个数据库)。

这种方法的缺点:
如果说一个特定实例的负载更大,比如说DB-1,那么扩展就变得很困难。
现在,如何缩放?我们必须将负载实例分为两个实例以共享负载。该特定数据库将需要被删除,然后再次划分然后再将其切换回去。这是一个单调乏味的过程,始终需要对其进行监视。

SQL连接将是必需的黑白碎片。

让我们通过考虑以下系统来了解以下每个属性,其中我们有两个Data实例,两个实例都是主数据库。

一致性 –

如前所述,如果将数据更新到一个数据库实例,但在将数据复制到另一个实例之前,则用户查询(如果信息用户获得了该信息)是其先前的数据,则意味着您的系统不一致。如果用户获得相同的更新值,则认为系统是一致的。

可用性 –

即使您的一台或多台计算机发生故障,您的系统仍将始终可用,这意味着如果再有一个数据库服务器出现故障,但总体而言,您的系统应能够执行读写操作。因此,必须没有停机时间。

分区容限–
即使您的数据库服务器之间的连接丢失,您的系统仍应可以正常工作。