/spring-boot-starter-mysql-lock

MySQL-based distributed lock, build-in springboot auto configuration

Primary LanguageJava

MySQL-based distributed lock

Introduction 简介

mysql-lock集成SpringBoot的自动配置版本。零配置,友好封装,易于使用。

Out Of The Box 开箱即用

<dependency>
    <groupId>com.github.zheng93775</groupId>
    <artifactId>spring-boot-starter-mysql-lock</artifactId>
    <version>1.0.0</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.40</version>
</dependency>

零配置(Bean容器里存在唯一DataSource Bean的情况下)

MLock mLock = new MLock("DailyJob");
try {
    if (mLock.tryLock()) {
        // TODO add your code here
    }
} finally {
    mLock.unlock();
}

配置项

可以在application.yml里进行如下配置,根据业务场景灵活地使用MLock

mysql-lock:
  enable:               # 开关,true则开启分布式锁自动配置,false则关闭此功能。未配置此属性等同于true,默认开启
  dataSourceBeanName:   # 多数据源的场景下,此配置项决定分布式锁使用哪个数据源
  url:                  # 数据库连接地址
  username:             # 数据库用户名
  password:             # 数据库密码
  tableName:            # 分布式锁表名,未配置的默认值为tb_distributed_lock
  lockKeyMaxLength:     # lock_key表字段的最大长度,默认值为64
  expireSeconds:        # 锁的过期时间,单位为秒,默认值为60
  tryLockInterval:      # 阻塞式地获取锁时,重复尝试的间隔毫秒数,默认值为1000毫秒

数据源的优先级:mysql-lock.url -> mysql-lock.dataSourceBeanName -> Bean容器里的唯一DataSource

以上配置均是可选配置,未配置时采用默认方式启动