1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/tooleek-lock-spring-boot-starter

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

lock-spring-boot-starter

介绍

一款基于 Spring Boot Starter 机制的分布式锁框架,实现了redis和zookeeper两种模式的分布式锁功能,以注解的方式(@RLock和@ZLock)对方法进行加锁操作,零代码实现业务加锁能力,涵盖各种加锁方式,并支持redis和zookeeper的集群。

使用说明

  1. 创建Spring Boot项目

  2. 引入maven依赖

     <dependency>
         <groupId>io.gitee.tooleek</groupId>
         <artifactId>lock-spring-boot-starter</artifactId>
         <version>1.2.0</version>
     </dependency>
  3. 在Spring Boot的项目配置文件application.yml中添加相应的配置,如:

     lock-config: 
         lock-scheme: redis #锁的实现方式,支持两种:redis、zookeeper
         redis:             #lock-scheme配置为redis时,需要配置该参数
           pattern: single  #redis模式配置,single:单机模式,cluster:集群模式,replicated:云托管模式,sentinel:哨兵模式,master_slave:主从模式
           # 不同的redis模式对应不同的配置方式,single-server对应的就是单机模式,具体参数意义可参考redisson的配置参数说明
           single-server: 
             address: 127.0.0.1
             port: 6379
             password: 123456
        #zookeeper:         #lock-scheme配置为zookeeper时,需要配置该参数
        #  address: 127.0.0.1:2181   #zk地址,支持集群
        #  connection-timeout-ms: 3000
        #  session-timeout: 3000
  4. 在需要使用分布式锁的方法上面使用@RLock或@ZLock注解,锁的关键字使用@Key,以最简单的用法为例,如:

     ###################### redis模式 ######################
     @RLock
     public void hello(String ces, @Key String orderNo) {
     	System.out.println("hello");
     }
     ######################################################
     #################### zookeeper模式 ####################
     @ZLock
     public void hello(String ces, @Key String orderNo) {
     	System.out.println("hello");
     }
     ######################################################

    如果需要配置不同类型的锁,可以直接变更@RLock或者@ZLock参数值即可

    @RLock提供四个参数可以配置:
        lockType:锁类型, 默认是可重入锁
        leaseTime:加锁时间
        waitTime:最长等待时间
        timeUnit:锁时长单位

    @ZLock提供三个参数可以配置:
        interProcess:锁类型, 默认是分布式可重入排它锁
        waitTime:等待锁时间
        timeUnit:锁时长单位,默认单位:秒

  5. 1.1.x 版本的使用@Lock,用法与@RLock类似,参数用法是一样的,1.2.x 版本兼容1.1.x 版本的用法,配置如下风格:

    lock-config:
     pattern: single
     single-server:
         address: 127.0.0.1
         port: 6379
         password: 123456

    DEMO地址如下:https://gitee.com/tooleek/lock-spring-boot-starter-demo

QQ交流群

群号:779169894
加群链接:https://jq.qq.com/?_wv=1027&k=5ziKU1r

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления (4)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/tooleek-lock-spring-boot-starter.git
git@api.gitlife.ru:oschina-mirror/tooleek-lock-spring-boot-starter.git
oschina-mirror
tooleek-lock-spring-boot-starter
tooleek-lock-spring-boot-starter
master