一、基于数据库表
要实现分布式锁,最简单的方式可能就是直接创建一张锁表,然后通过操作该表中的数据来实现了。当我们要锁住某个方法或资源的时候,我们就在该表中增加一条记录,想要释放锁的时候就删除这条记录。
创建这样一张数据库表:
CREATE TABLE 'methodLock' (
'id' int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
'method_name' varchar(64) NOT NULL DEFAULT '' COMMENT '锁定的方法名',
'desc' varchar(1024) NOT NULL DEFAULT '备注信息',
'update_time' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '保存数据时间,自动生成',
PRIMARY KEY ('id'),
UNIQUE KEY 'uidx_method_name' ('method_name ') USING BTREE
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='锁定中