分布式锁的三种实现方式http://www.cnblogs.com/austinspark-jessylu/p/8043726.html 基于数据库实现分布式锁; 基于缓存(Redis等)实现分布式锁; 基于Zookeeper实现分布式锁; 基于数据库的实现方式的核心思想是:在数据库中创建一个表,表中包含方法名等字段,并在方法名字段上创建唯一索引,想要执行某个方法,就使用这个方法名向表中插入数据,成功插入则获取锁,执行完成后删除对应的行数据释放锁。 1、选用Redis实现分布式锁原因: (1)Redis有很高的性能; 2、使用命令介绍: (1)SETNX
(2)expire
(3)delete
在使用Redis实现分布式锁的时候,主要就会使用到这三个命令。 基于ZooKeeper的实现方式ZooKeeper是一个为分布式应用提供一致性服务的开源组件,它内部是一个分层的文件系统目录树结构,规定同一个目录下只能有一个唯一文件名。基于ZooKeeper实现分布式锁的步骤如下: (1)创建一个目录mylock; 这里推荐一个Apache的开源库Curator,它是一个ZooKeeper客户端,Curator提供的InterProcessMutex是分布式锁的实现,acquire方法用于获取锁,release方法用于释放锁。 |
|