首页 > 技术文章 > 分布式锁的相关的CAP理论总结

cb1186512739 2020-04-29 14:48 原文

CAP理论

在分布式领域,有一个非常重要的理论叫做CAP理论。

  • C:Consistency(一致性)

  • A:Availability(可用性)

  • P:Partition tolerance(分区容错性)

在分布式领域中,是必须要保证分区容错性的,也就是必须要保证“P”,所以,我们只能保证CP或者AP。

这里,我们可以使用Redis和Zookeeper来进行简单的对比,我们可以使用Redis实现AP架构的分布式锁,使用Zookeeper实现CP架构的分布式锁。

  • 基于Redis的AP架构的分布式锁模型

         

       在基于Redis实现的AP架构的分布式锁模型中,向Redis节点1写入数据后,会立即返回结果,之后在Redis中会以异步的方式来同步数据。

  • 基于Zookeeper的CP架构的分布式锁模型

         

 

在基于Zookeeper实现的CP架构的分布式模型中,向节点1写入数据后,会等待数据的同步结果,当数据在大多数Zookeeper节点间同步成功后,才会返回结果数据。

当我们使用基于Redis的AP架构实现分布式锁时,需要注意一个问题,这个问题可以使用下图来表示。

   

 

也就是Redis主从节点之间的数据同步失败,假设线程向Master节点写入了数据,而Redis中Master节点向Slave节点同步数据失败了。

此时,另一个线程读取的Slave节点中的数据,发现没有添加分布式锁,此时就会出现问题了!!!

所以,在设计分布式锁方案时,也需要注意Redis节点之间的数据同步问题。

 

推荐阅读