【技术实现步骤摘要】
基于数据库的分布式锁控制方法、装置、设备及介质
[0001]本专利技术涉及数据处理
及医疗领域,尤其涉及一种基于数据库的分布式锁控制方法、装置、电子设备及计算机可读存储介质。
技术介绍
[0002]随着人们对健康生活的不断追求,当前涌现出一批围绕用户健康话题的医疗健康微服务系统,通常该系统多为分布式系统,为广大用户提供丰富多样的健康微服务,例如,健康问卷调查、健康咨询服务及健康小贴士等微服务。每种微服务对应多个事务或进程,同一时间并该系统会并发多个事务或进程,为保障并发的多事务在运行过程中,对应的数据库数据的一致性,对数据库数据进行加锁控制是必不可或缺的一种手段。以往在单一服务节点的场景下,以java语言为例,通过java jdk提供的synchronize关键字或者各种Lock对象,就可以实现对并发事务之间的锁控制。但是,针对微服务多节点的场景,由于不同服务节点不能共享jvm内存,因此,无法通过java jdk自带的synchronize关键字或者各种Lock对象等方案来实现锁控制。
[0003]当前针对多并 ...
【技术保护点】
【技术特征摘要】
1.一种基于数据库的分布式锁控制方法,其特征在于,所述方法包括:监听到事务获取锁的消息时,解析所述消息中锁的键值及锁的持有者ID;从预设的数据库锁信息表中,查询与所述锁的键值及所述锁的持有者ID均相匹配的数据库锁记录;当存在与所述锁的键值及所述锁的持有者ID均相匹配的数据库锁记录时,则允许所述事务对所述数据库锁记录对应的目标数据执行预设类型的数据操作;当不存在与所述锁的键值及所述锁的持有者ID均相匹配的数据库锁记录时,则向所述事务发送获取锁失败的消息。2.如权利要求1所述的基于数据库的分布式锁控制方法,其特征在于,所述允许所述事务对所述数据库锁记录对应的目标数据执行预设类型的数据操作之前,所述方法还包括:在所述数据库锁记录中,记录同一锁的持有者对数据库中同一目标数据进行累计上锁的次数,生成上锁次数字段;及记录所述锁的键值对应锁的失效时间,生成锁超时时间字段。3.如权利要求2所述的基于数据库的分布式锁控制方法,其特征在于,该方法还包括:监听到事务释放锁的消息时,解析所述释放锁消息中释放锁的键值;在所述预设的数据库锁信息表中,查询与所述释放锁的键值相匹配的待释放数据库锁记录;将所述待释放锁数据库锁记录中的上锁次数字段的取值减1,并判断减1后的上锁次数字段的取值是否等于预设释放阈值;当减1后的上锁次数字段的取值等于预设释放阈值时,将所述待释放数据库锁记录从所述预设的数据库锁信息表中删除。4.如权利要求2所述的基于数据库的分布式锁控制方法,其特征在于,该方法还包括:从所述预设的数据库锁信息表中,获取临期数据库锁记录及每个所述临期数据库锁记录对应的锁的持有者ID;根据所述临期数据库锁记录对应的锁的持有者ID,查询每个所述临期数据库锁记录对应事务的状态信息;当对应事务的状态信息为活跃状态时,则延长对应的临期数据库锁记录中的锁超时时间;当对应事务的状态信息为非活跃状态时,则删除对应的临期数据库锁记录。5.如权利要求4所述的基于数据库的分布式锁控制方法,其特征在于,所述从所述预设的数据库锁信息表中,获取临期数据库锁记录,包括:定时扫描所述预设的数据库锁信息表,获取每条数据库锁记录中的锁超时时间;计算...
【专利技术属性】
技术研发人员:段友爱,刘祺,汤婧,
申请(专利权)人:平安臻颐年上海企业管理有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。