Skip to main content

浅谈分布式锁

分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足`一致性(Consistency)`、`可用性(Availability)`和`分区容错性(Partition tolerance)`,最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证“最终一致性”,只要这个最终时间是在用户可以接受的范围内即可。

在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。有的时候,我们需要保证一个方法在同一时间内只能被同一个线程执行。在单机环境中,Java中其实提供了很多并发处理相关的关键字和API,比如synchronized关键字和ReentrantLock可重入锁,但是这些关键字和API在分布式场景中就无能为力了。也就是说单纯的Java API并不能提供分布式锁的能力。所以针对分布式锁的实现目前有多种方案。

继续阅读