美文网首页
分布式锁klock的使用

分布式锁klock的使用

作者: 丶君为红颜酔 | 来源:发表于2018-12-24 18:40 被阅读0次

项目地址:https://gitee.com/kekingcn/spring-boot-klock-starter

可以用于解决重复提交的问题,是个不错的分布式锁的实践。

依赖

//需要自己打包到私服
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-klock-starter</artifactId>
            <version>1.1-SNAPSHOT</version>
        </dependency>

配置

spring:
  klock:
    address: 127.0.0.1:6379
    password: password

测试方法

    /**
     * 分布式锁测试
     *
     * @param token
     * @return
     */
    @NotAuth
    @Klock(name = "query", leaseTime = 10000)
    @GetMapping(value = "test")
    public String query(@RequestParam String token) {
        try {
            log.info("线程进入:" + Thread.currentThread().getName());
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return "success - " + token;
    }

KLOCK

/**
 * Created by kl on 2017/12/29.
 * Content :加锁注解
 */
@Target(value = {ElementType.METHOD})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface Klock {
    /**
     * 锁的名称
     * @return
     */
    String name() default "";
    /**
     * 锁类型,默认可重入锁
     * @return
     */
    LockType lockType() default LockType.Reentrant;
    /**
     * 尝试加锁,最多等待时间
     * @return
     */
    long waitTime() default Long.MIN_VALUE;
    /**
     *上锁以后xxx秒自动解锁
     * @return
     */
    long leaseTime() default Long.MIN_VALUE;

    /**
     * 自定义业务key
     * @return
     */
     String [] keys() default {};
}

相关文章

网友评论

      本文标题:分布式锁klock的使用

      本文链接:https://www.haomeiwen.com/subject/kxttlqtx.html