如果你的系统是分布式集群部署的,那么传统的synchorinzed或者jdk1.5提供的Lock都是依赖本地的jvm虚拟机提供锁服务,分布式服务中多jvm是无法同享锁信息的,故无法提供锁。
分布式场景中数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们任何一个分布式系统都无法同时满足
一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance),最多只能同时满足两项。所以很多系统在设计之初就要对这三者作出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证"最终一致性",只要对最终时间是在用户可以接受的范围内即可。
使用redis实现分布式锁
SETNX