美文网首页
分布式锁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