范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

基于redissonzookeeper实现的分布式锁kylinlock

  1、简介1.1、开源项目kylin-lock: 麒麟分布式锁-支持redisson、zookeeper重入锁、读写锁、联锁、红锁、公平锁
  已上传jar到中央仓库,可直接引入依赖 1.2、介绍支持redisson、zookeeper分布式锁 redisson支持重入锁、读写锁、联锁、红锁、公平锁 zookeeper支持重入锁、不可重入锁、读写锁、联锁 支持注解、方法调用、函数式编程等方式加锁 支持多注解,对同一方法加不同的锁 锁的key支持SpEL表达式 支持自定义全局、方法级加锁失败回调 方法级失败回调:方法名、参数类型列表相同,支持相同类型的返回 1.3 分布式锁注解KylinLock字段使用说明name:锁的key一部分,为空则会使用:包名.类名.方法名 keys:锁的key一部分 支持 SpEL表达式,锁的key = prefix:name#keys expire:过期时间 单位:毫秒 acquireTimeout:获取锁超时时间 单位:毫秒 executor:锁执行器 lockType:锁类型,默认重入锁 keySuffix:联锁、红锁个数以及其中每个锁的后缀key,默认:{"1", "2", "3"},支持SpEL 表达式 lockFailure:加锁失败回调类 2、使用说明2.1、引入依赖     com.gitee.wangjkui     kylin-lock-spring-boot-starter     Latest Version  2.2、配置2.2.1、application.ymlspring:   redis:     redisson:       file: classpath:redisson.yml  #分布式锁 kylin:   lock:     acquire-timeout: 3000       #获取锁超时时间 默认值3000L 单位:毫秒     expire: 30000               #过期时间,默认值30000L 单位:毫秒     retry-interval: 100         #获取锁失败时重试时间间隔,默认值100L 单位:毫秒     lock-key-prefix: kylin-lock #锁前缀 默认配置     primary-executor: com.wjk.kylin.lock.executor.redisson.RedissonLockExecutor #默认执行器。默认redisson>zookeeper     redisson: true              #是否开启redisson 默认true     zookeeper:       zk-servers: 127.0.0.1:2181 #zk的server地址,多个server之间使用英文逗号分隔开 。配置地址则开启zookeeper       session-timeout: 60000     #会话超时时间,默认值60000 单位:毫秒       connection-timeout: 15000  #连接超时时间,默认值15000 单位:毫秒       base-sleep-time-ms: 5000   #初始sleep时间,默认值5000 单位:毫秒       max-retries: 3             #最大失败重试次数       namespace: curator/kylin/lock #命名空间2.2.2、redisson.yml# 单节点配置 singleServerConfig:   # 连接空闲超时,单位:毫秒   idleConnectionTimeout: 10000   # 连接超时,单位:毫秒   connectTimeout: 10000   # 命令等待超时,单位:毫秒   timeout: 3000   # 命令失败重试次数,如果尝试达到 retryAttempts(命令失败重试次数) 仍然不能将命令发送至某个指定的节点时,将抛出错误。   # 如果尝试在此限制之内发送成功,则开始启用 timeout(命令等待超时) 计时。   retryAttempts: 3   # 命令重试发送时间间隔,单位:毫秒   retryInterval: 1500   # 密码   password: redis123   # 单个连接最大订阅数量   subscriptionsPerConnection: 5   # 客户端名称   #clientName: axin   #  # 节点地址   address: redis://127.0.0.1:6379   # 发布和订阅连接的最小空闲连接数   subscriptionConnectionMinimumIdleSize: 1   # 发布和订阅连接池大小   subscriptionConnectionPoolSize: 50   # 最小空闲连接数   connectionMinimumIdleSize: 32   # 连接池大小   connectionPoolSize: 64   # 数据库编号   database: 2   # DNS监测时间间隔,单位:毫秒   dnsMonitoringInterval: 5000 # 线程池数量,默认值: 当前处理核数量 * 2 #threads: 0 # Netty线程池数量,默认值: 当前处理核数量 * 2 #nettyThreads: 0 # 编码 codec: ! {} # 传输模式 transportMode: "NIO" 2.3、使用案例2.3.1、重入锁@KylinLock(name = "reentrant_key", expire = 60000) public void demoMethod2() {    System.out.println("demoMethod2 - start" + getClass());    try {        Thread.sleep(4000);    } catch (InterruptedException e) {        e.printStackTrace();    }    //重入锁    indexService.demoMethod2();    System.out.println("demoMethod2 - end " + getClass()); } 2.3.2 、读写锁@Override @KylinLock(name = "read-write", acquireTimeout = 0, lockType = LockType.READ) public void read1(String key) {     try {         Thread.sleep(5000);     } catch (InterruptedException e) {         e.printStackTrace();     }     System.out.println("执行方法read1 , 当前线程:" + Thread.currentThread().getName() + "threadId:" + Thread.currentThread().getId()); } 2.3.3、联锁@KylinLock(lockType = LockType.MULTI) public void demoMethod6() {    System.out.println("demoMethod6 - start" + getClass());    try {        Thread.sleep(40000);    } catch (InterruptedException e) {        e.printStackTrace();    }    System.out.println("demoMethod6 - end " + getClass()); } 2.3.4、红锁@KylinLock(lockType = LockType.RED, keySuffix = {"#user.id", ""red2""}, executor = RedissonLockExecutor.class) public void demoMethod11(User user) {    System.out.println("demoMethod11 - start" + getClass());    try {        Thread.sleep(40000);    } catch (InterruptedException e) {        e.printStackTrace();    }     System.out.println("demoMethod11 - id:" + user.getId() + ",name:" + user.getName()); } 2.3.5、公平锁@KylinLock(name = "fair_lock_key", lockType = LockType.FAIR, executor = RedissonLockExecutor.class) public void demoMethod8() {    System.out.println("demoMethod8 - start" + getClass());    try {        Thread.sleep(4000);    } catch (InterruptedException e) {        e.printStackTrace();    }    indexService.demoMethod8();    System.out.println("demoMethod8 - end " + getClass()); } 2.3.6、多注解@KylinLock(name = "reentrant_key1", expire = 60000) @KylinLock(name = "reentrant_key2", expire = 60000) @KylinLock(name = "reentrant_key3", expire = 60000) public void demoMethod3() {    System.out.println("demoMethod3 - start" + getClass());    try {        Thread.sleep(4000);    } catch (InterruptedException e) {        e.printStackTrace();    }    System.out.println("demoMethod3 - end " + getClass()); } 2.3.7、函数式编程public void execute1(String key) {    Integer num = lockTemplate.execute(key, IndexServiceImpl::getNumber);    System.out.println("执行execute方法1 , 当前线程:" + Thread.currentThread().getName() + " , 获取的返回值是:" + num); } public static Integer getNumber() {    try {        Thread.sleep(40000);    } catch (InterruptedException e) {        e.printStackTrace();    }    System.out.println("执行getNumber方法 , 当前线程:" + Thread.currentThread().getName());    return 1; } 2.3.8、自定义加锁失败执行方法//加锁失败,会调用 DemoLockFailureCallBack中方法名称、参数类型列表相同的方法 @KylinLock(acquireTimeout = 0, lockFailure = DemoLockFailureCallBack.class) public Integer demoMethod14(Integer num) {     System.out.println("demoMethod12 - start,num:" + num);     try {         Thread.sleep(4000);     } catch (InterruptedException e) {         e.printStackTrace();     }     System.out.println("demoMethod12 - end,num:" + num);     return num * 2; } @Slf4j @Component public class DemoLockFailureCallBack implements LockFailureCallBack {     //方法名称、参数类型列表相同     public Integer demoMethod14(Integer num) {         log.error("demoMethod14-方法自定义失败回调,入参num:{}", num);         return -1;     } }

手机软件推荐,全网视频免费看今天给大家推荐一款安卓手机观看视频软件,这是一款非常好用的高质量观影神器,全网影视入门剧集这里都有,软件资源多画质高清播放流畅,软件纯净没有任何限制,界面简洁干净。此软件主页面推荐乌卡时代以下几点是未来发展的确定性乌卡时代,即VUCA时代,是指人们生活在一个不稳定性不确定性复杂性模糊性的时代境况或者世界中。vuca是volatility(易变性),uncertainty(不确定性),comp新华皮肤科中国痤疮周公益活动火热进行中丨战痘秘籍大放送谈起痘痘,超过95的人在一生中不同时期或多或少都会受到痤疮的困扰。痤疮反复发作瘢痕遗留以及带来的敏感肤质不仅会影响到自身的容貌,甚至会影响心理健康。新华医院皮肤科长期设有痤疮玫瑰痤别小看这3种维生素,对降尿酸大有作用最近有的患者询问我有没有简单的方法可以帮助降尿酸呢?今天就给大家分享补充这几种维生素,可以轻松帮你降尿酸。第一维生素C能帮助促进尿酸排泄,对降尿酸有辅助效果。第二维生素B6可以减少世界手表前三名的代表款式说起手表,你会听到很多关于这三位成员爱彼百达翡丽和江诗丹顿。这些据说是最负盛名的奢侈手表品牌。虽然有些人会争辩说其他品牌也在生产同样质量的手表,但在过去的百年里,还没有其他品牌达到谷乃全空气系统在恶劣环境下对过敏性皮肤的作用有哪些呢?夏秋交替,气候干燥,早晚温差较大,人体的抵抗力下降。皮肤的油脂合成逐渐减慢,皮肤水分慢慢丢失。是一些细菌病毒繁殖与传播的时候,也是皮肤的多事之秋。轻则皮肤暗淡或出现脱皮发痒皮肤泛红连遭爆冷退赛!女单赛场意外不断,中国金花有望会师决赛亚洲系列赛首站WTA500东京站,作为美网之后最具含金量的赛事,虽然世界第一斯维亚泰克没有出席,但仍旧云集一系列顶级名将,可谁曾想在女单赛场却意外爆冷不断,不少高顺位种子球员接连被喝醋能软化血管?错!搭配这两样,秋季养生功效加倍醋,作为一种常见的调味品,常被用来腌制浸泡一些食物,很多凉拌小菜也离不开它。而说到吃醋,最厉害的应该是山西人,吃面必定要倒很多醋,对于醋的作用,坊间传闻可以软化血管,老一辈的人一直资讯加速在华布局,博世创投参投自动驾驶芯片公司寒武纪行歌文懂车帝原创魏微懂车帝原创9月22日,博世创投宣布已完成对寒武纪行歌(南京)科技有限公司(以下简称行歌)的投资。不过博世创投并未透露此次投资的具体数额。博世创投投资自动驾驶芯片公司京东零售集团辛利军京东42万员工中有七成来自农村9月22日,京东联合央视财经频道举办了不起的中国农民的京东农特产购物节农人盛典,来自全国各地的十位感人故事的主人公登上农人盛典的舞台。盛典的舞台上,有扎根大漠治沙种树,种出致富枣的相信科学法国研究称上班摸鱼是大脑排毒根据法国科学家MathiasPessiglione的研究思考的时间越长,大脑中的谷氨酸就越多。当谷氨酸累积到一定的阈值时,大脑增加了侧脑前额叶外皮的活化成本。它会让你疲惫不堪,难以
想要肾病不进展成尿毒症,要关注5个因素肾病想要不发展到尿毒症,需要关注的这些因素一个不能不少第一个就是血管紧张素,血管紧张素会强烈的收缩血管,升高肾小球的内压,从而导致蛋白从尿液当中漏出,导致肾病的进展。所以抑制血管紧小威退役后,女子网球已进入斯瓦泰克的时代?从网坛传奇纳芙拉蒂诺娃手中接过美网女单冠军奖杯,斯瓦泰克研究了几秒钟该把哪一面朝向摄影记者,然后将其高高举起。颁奖台两边的彩带砰地一声被触发,把21岁的她吓了一小跳。但这并没有影响天地同赏月,中国空间站首个中秋节这样过今天(9月10日),是神舟十四号航天员乘组在中国空间站的首个中秋节,航天员用摄像机拍摄下了太空中的月色。天地共赏一轮明月,同心共庆团圆佳节。航天员陈冬这是我们在空间站看到的月亮,与边玉芳面向未来,家长要培养孩子五种能力(特别家教1059期)为了在特殊时期为家长提供特别的家庭教育指导,全国妇联推出了特殊时期特别家教微信栏目,家长可以通过家庭教育微课学习家庭教育知识。边玉芳面向未来,家长要培养孩子五种能力(特别家教105女子带娃没给老公做饭,被训斥后情绪崩溃你就做这一次都不行吗孩子是爱情的结晶,也是婚姻的枷锁。很多夫妻自打孩子出生后,便失去了自我很多家庭因为孩子的降生而变得更加牢固很多人因为孩子的出生而看清了很多真相。孩子可以成为惊喜,也可以成为累赘。是31周早产儿结婚一年没有孩子,第二年不想等了去的医院,本来打算做人受的,可是由于自己太紧张导致没有做,思考再三决定直接做试管,然后就开始了一系列的检查,打针吃药,屁股上打了无数个针眼到现在还依霍尊一家六口庆中秋,仲小萍与前夫现任罕同框,施小岚微笑比耶9月10日晚上,内地资深歌手火风的女儿霍美竹(霍苗)在社交网晒出一组家庭聚餐照,其同父异母哥哥霍尊罕见露面引发热议。适逢今日中秋夜喜连教师节,明日即将飞往UK(英国)留学读书的她,李易峰凉凉早有征兆!苏梅岛事件,跨年约女网红,一点儿也不老实这次男星李易峰大概率凉凉了!嫖娼风波曝出后,两次回应直接变无效发文,相关话题也已经消失。娱记更是指他还在嘴硬,后续要被狠打脸。就在全网热议李易峰嫖娼事件之时,一位网红的评论区突然沦张柏芝一家庆中秋!张爸爸光头胡须花白,12岁小Q长胡子似谢霆锋饿了吗?戳右边关注我们,每天给您送上最新出炉的娱乐硬核大餐!9月10日,张柏芝在社交平台上晒出一段视频,分享一家人庆祝中秋节的画面,引发网友热议。视频中,张柏芝穿着黑色T恤,戴着墨三生三世步生莲宣发,男女主人选公布,人气贴合度均胜原班2017年,一部由杨幂赵又廷迪丽热巴高伟光等人主演的古装剧三生三世十里桃花上线,该剧一经播出便人气拉满,大有胡歌杨幂刘诗诗霍建华等人当年仙剑3的气势。虽然在三生三世十里桃花之后,原那些年,我们追过的6部少儿不宜的电影八九十年代是个百花争放的时期。当时内地影视业刚刚起步,审核制度还不发达,港台地区则竞争激烈,什么卖座就拍什么,毫无顾忌。于是就催生了一大波题材各异的影视剧,其中不乏少儿不宜的电影,