SpringBoot基于数据库实现简单的分布式锁
本文介绍SpringBoot基于数据库实现简单的分布式锁。
1.简介
分布式锁的方式有很多种,通常方案有:
- 基于mysql数据库
- 基于redis
- 基于ZooKeeper
网上的实现方式有很多,本文主要介绍的是如果使用mysql实现简单的分布式锁,加锁流程如下图:
其实大致思想如下:
- 1.根据一个值来获取锁(也就是我这里的tag),如果当前不存在锁,那么在数据库插入一条记录,然后进行处理业务,当结束,释放锁(删除锁)。
- 2.如果存在锁,判断锁是否过期,如果过期则更新锁的有效期,然后继续处理业务,当结束时,释放锁。如果没有过期,那么获取锁失败,退出。
2.数据库设计
2.1 数据表介绍
数据库表是由JPA自动生成的,稍后会对实体进行介绍,内容如下:
CREATE TABLE `lock_info` ( `id` bigint(20) NOT NULL,

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Javascript对SEO的影响
你应该知道的关于SEO和Javascript的6个事实 了解JavaScript的基础知识已成为SEO专家的一项重要技能,尽管到目前为止,这两个学科之间的关系一直存在争议。 关于SEO和JavaScript的关键问题是发现搜索引擎蜘蛛是否可以正确地感知网站内容并实际评估用户体验。 虽然可以通过爬虫直接读取与PHP,CSS等一起使用的HTML,但是基于JavaScript的网站不能系统地访问。百度的抓取工具必须首先分析DOM,然后才能浏览网站。 一般定义在深入研究JavaScript优化的最佳实践之前,让我们先看一下基本术语: JavaScript是一种用于使网页动态和交互的编程语言。您可以将JavaScript放在HTML文档中,链接到它或引用它。 HTML代表超文本标记语言。简单来说,这是一个内容组织者:HTML提供网站结构(列表,标题,副标题,段落等)并定义静态内容。 AJAX是异步JavaScript和XML。基本上,这允许在不刷新整个页面的情况下更新内容。AJAX允许Web应用程序和服务器进行通信,而不会干扰正在显示的页面。 但是,您应该注意到,百度将不再需要AJAX来浏览基于...
- 下一篇
Java集合 HashSet的原理及常用方法
Java集合 HashSet的原理及常用方法目录 一. HashSet概述二. HashSet构造三. add方法四. remove方法五. 遍历六. 合计合计先看一下LinkedHashSet在看一下TreeSet七. 总结一. HashSet概述HashSet是Java集合Set的一个实现类,Set是一个接口,其实现类除HashSet之外,还有TreeSet,并继承了Collection,HashSet集合很常用,同时也是程序员面试时经常会被问到的知识点,下面是结构图 public class HashSet extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable {}二. HashSet构造HashSet有几个重载的构造方法,我们来看一下 private transient HashMap map;//默认构造器public HashSet() { map = new HashMap<>(); }//将传入的集合添加到HashSet的构造器public ...
相关文章
文章评论
共有0条评论来说两句吧...