1. 为什么使用分布式锁?
使用分布式锁的目的,是为了保证同一时间只有一个 JVM 进程可以对共享资源进行操作。
2. 目前实现分布式锁最常用的中间件是 Redis和Zookeeper
3. 两种方案都有各自的优缺点
对于 redis 的分布式锁而言,它有以下缺点:
补充:
明显AP结构选择了高可用和分区容错性,此时,那个失去联系的节点依然可以向系统提供服务,不过它的数据就不能保证是同步的了(失去了C属性)。Eureka就是一个AP架构的例子,当Eureka客户端心跳消失的时候,那Eureka服务端就会启动自我保护机制,不会剔除该EurekaClient客户端的服务,依然可以提供需求;
对于 zk 分布式锁而言