【技术实现步骤摘要】
一种分布式锁的服务实现方法、设备、存储介质
本专利技术涉及信息处理
,尤其涉及一种分布式锁的服务实现的方法、设备、存储介质。
技术介绍
随着项目的发展,架构模式从单体架构到SOA(Service-OrientedArchitecture,面向服务的架构),最后演变成微服务架构。而锁是很常用的一个组件,在单体架构时代,内存锁就能覆盖我们的需求,JDK在java.util.concurrent包下为我们提供了相关的lock组件;在微服务架构中,存在不同机器在不同进程下的应用需要锁定资源的需求,保证同一时刻只有一个进程访问该资源。这就需要更可靠性能更好的分布式锁。目前业界比较流行的方案包括:1、mysql数据库锁,数据库主键和唯一索引都具有排他性,在表中给锁名称的列建唯一索引,获取锁时向数据库插入一条记录。同一锁名称同一时刻,成功插入表示获取锁成功,否则获取锁失败。但mysql不支持高并发,单机QPS每秒在2000到3000这个区间,而且存在单点故障,如果是横向扩展的话,只有一个主从架构可以选择。其性能无法灵 ...
【技术保护点】
1.一种分布式锁的服务实现的方法,其特征在于,应用于分布式装置,包括以下步骤:/n步骤S1、从Redis数据库中获取客户端的分布式锁;所述分布式锁包括分布式锁名称、初始唯一识别码及失效时间;/n步骤S2、确定所述分布式锁是否失效,如果是,通过Setnx命令重新设置所述分布式锁的钥匙及失效时间,执行步骤S3;否则,执行步骤S3;/n步骤S3、确定所述分布式锁的当前唯一识别码,返回获取所述分布式锁成功的指令至Redis数据库;/n步骤S4:执行客户端对应的业务逻辑,并在所述业务逻辑执行完毕时,根据所述初始唯一识别码与当前唯一识别码释放所述分布式锁。/n
【技术特征摘要】
1.一种分布式锁的服务实现的方法,其特征在于,应用于分布式装置,包括以下步骤:
步骤S1、从Redis数据库中获取客户端的分布式锁;所述分布式锁包括分布式锁名称、初始唯一识别码及失效时间;
步骤S2、确定所述分布式锁是否失效,如果是,通过Setnx命令重新设置所述分布式锁的钥匙及失效时间,执行步骤S3;否则,执行步骤S3;
步骤S3、确定所述分布式锁的当前唯一识别码,返回获取所述分布式锁成功的指令至Redis数据库;
步骤S4:执行客户端对应的业务逻辑,并在所述业务逻辑执行完毕时,根据所述初始唯一识别码与当前唯一识别码释放所述分布式锁。
2.如权利要求1所述的一种分布式锁的服务实现的方法,其特征在于,步骤S2中确定所述分布式锁是否失效包括以下步骤:
步骤S21、判断所述分布式锁的初始唯一识别码是否存在;若不存在,则所述分布式锁失效;否则,所述分布式锁不失效。
3.如权利要求2所述的一种分布式锁的服务实现的方法,其特征在于,若所述分布式锁的初始唯一识别码存在,则所述分布式锁的当前唯一识别码为所述分布式锁的初始唯一识别码加1;若所述分布式锁的初始唯一识别码不存在,则设置所述分布式锁的当前唯一识别码为1。
4.如权利要求3所述的一种分布式锁的服务实现的方法,其特征在于,所述步骤S4中释放所述分布式锁包括以下步骤:
步骤S41、获取所述分布式锁的当前唯一识别码;
步骤S42、判断所述当前唯一识别码是否...
【专利技术属性】
技术研发人员:沈汉标,王妙玉,邓建平,吴宁泉,王伦,
申请(专利权)人:广东科徕尼智能科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。