分布式锁的相关的CAP理论总结
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节点之间的数据同步问题。
有志者、事竟成,破釜沉舟,百二秦关终属楚;
苦心人、天不负,卧薪尝胆,三千越甲可吞吴.
加油吧,致每个正在奋斗路上的你!!!