欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > 分布式-基于数据库排他锁

分布式-基于数据库排他锁

2025/5/9 13:35:21 来源:https://blog.csdn.net/liuhongJAVAEn/article/details/147770631  浏览:    关键词:分布式-基于数据库排他锁

原理: 除了可以通过增删操作数据表中的记录以外,其实还可以借助数据库中自带的锁来实现分布式的锁。 我们还用刚刚创建的那张数据库表。可以通过数据库的排他锁来实现分布式锁。 基于MySql的InnoDB引 擎,可以使用以下方法来实现加锁操作:

在查询语句后面增加 for update ,数据库会在查询过程中给数据库表增加排他锁(这里再多提一句, InnoDB引擎在加锁的时候,只有通过索引进行检索的时候才会使用行级锁,否则会使用表级锁。这里我 们希望使用行级锁,就要给method_name添加索引,值得注意的是,这个索引一定要创建成唯一索 引,否则会出现多个重载方法之间无法同时被访问的问题。重载方法的话建议把参数类型也加上。)。 当某条记录被加上排他锁之后,其他线程无法再在该行记录上增加排他锁。 我们可以认为获得排它锁的线程即可获得分布式锁,当获取到锁之后,可以执行方法的业务逻辑,执行 完方法之后,再通过以下方法解锁:

通过 connection.commit() 操作来释放锁。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词